compteur de statistique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : compteur de statistique

par auclairp » 19 janv. 2007, 07:37

J'ai trouvé une partie de mon problème, juste que je ne sais pas comment le résoudre

Voici.

J'ai ma Bdd qui contien un champ ex. "videotron" et j'ai mon adresse host qui est :"modemcable184.136-203-24.mc.videotron.ca"

Dans mes dernière dequête, je crois que je demandais de trouver "modemcable184.136-203-24.mc.videotron.ca" dans le mot "videotron", ci qui est biensûre impossible, le contraire ok.

Bien voila, savez vous comment faire cela.

par Invité » 18 janv. 2007, 16:32

$ip_exist= "SELECT * FROM ip_no WHERE ip='$ip' OR host LIKE '%$host%' "; // CELLE-CI NE FONCTIONNE PAS ??????
$ip_exist= "SELECT * FROM ip_no WHERE ip='$ip' OR host LIKE '%"$host"%' "; // CELLE-CI NE FONCTIONNE PAS non plus??????
$ip_exist= "SELECT * FROM ip_no WHERE ip='$ip' OR host LIKE '$host%' "; // CELLE-CI NE FONCTIONNE PAS non plus??????
à mon avis les 2 dernières lignes sont fausses.
la première des 3 devrait marcher. es-tu sûr du nom de ta colonne ('host') ?
Oui certain, car comme tu peux le voir.... je copie ma table MySQL

Code : Tout sélectionner

-- Structure de la table `ip_no` -- CREATE TABLE `ip_no` ( `id` int(11) NOT NULL auto_increment, `ip` text NOT NULL, `host` text NOT NULL, `pc_name` text NOT NULL, `block` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='IP a ne pas compter au logs' AUTO_INCREMENT=6 ; -- -------------------------------------------------------- -- -- Structure de la table `logs` -- CREATE TABLE `logs` ( `id` int(11) NOT NULL auto_increment, `page` text NOT NULL, `ip` text NOT NULL, `host` text NOT NULL, `annee` text NOT NULL, `mois` text NOT NULL, `jour` text NOT NULL, `heure` text NOT NULL, `date` text NOT NULL, `urlfrom` text NOT NULL, KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=125 ;
Vraiment je n'y comprend rien, car dans la table "logs" toutes les données sont bonne, encore pire, j'ai tenter de lui de remplacer le '%$host%' par exemple '%videotron%' et là pas de trouble, bien sûre puisque mon adresse HOST à moi contient le mot videotron, elle ne l'as pas compter, mais si j'utilise le $host relié à la table no_ip que le champ host contient le mot videotron, là ca ne fonctionne plus.???

par goeb » 18 janv. 2007, 14:19

$ip_exist= "SELECT * FROM ip_no WHERE ip='$ip' OR host LIKE '%$host%' "; // CELLE-CI NE FONCTIONNE PAS ??????
$ip_exist= "SELECT * FROM ip_no WHERE ip='$ip' OR host LIKE '%"$host"%' "; // CELLE-CI NE FONCTIONNE PAS non plus??????
$ip_exist= "SELECT * FROM ip_no WHERE ip='$ip' OR host LIKE '$host%' "; // CELLE-CI NE FONCTIONNE PAS non plus??????
à mon avis les 2 dernières lignes sont fausses.
la première des 3 devrait marcher. es-tu sûr du nom de ta colonne ('host') ?

compteur de statistique

par auclairp » 18 janv. 2007, 12:43

Bonjour tous, voici mon problème.

Je me suis créer une table pour visualiser mes visiteurs.
J'inscrit IP, HOST, DATE de visite.

Parcontre j'ai créer une autre table ou je met les IP que je veux pas qui soit compt. ex. la mienne. Jusque là tout fonctionne.

Dernièrement j'ai remarqué plusiquer adresse corresposdant à des ROBOT SEARCH, mais ils ont tous des adresse IP différente, et pour de qui est du HOST, tous finissent pas la même chose, mais ont des début différents. Alors j'ai tenter d'exclire par la même table touts les HOST qui finissent par ex. inktomisearch.com, mais ca ne fonctionne pas.

c'est dans le LIKE ou je sais pas quoi ou peut-¸etre comment j'obtien le HOST, quoi que ca fonctionne si je met juste un WHERE ip = '$ip' mais il ne fonctionne plus si je teste le LIKE avec le IP.....

J'espère que vous comprenez ce que je recherche,
J'y ai insérer quelque une de mes essais, bien sûre elle ne font pas partie du code original.....




Voici mon code, si vous trouver une erreur.
$page = $_SERVER['PHP_SELF']; 
$ip = $_SERVER['REMOTE_ADDR'];
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$urlfrom = $_SERVER["HTTP_REFERER"]; // L'URL depuis laquelle le script PHP est appelé	

$annee = date("Y",mktime(date("H")-5, date("i"), date("s"), date("m") , date("d"), date("Y") ) );
$mois = date("m",mktime(date("H")-5, date("i"), date("s"), date("m") , date("d"), date("Y") ) );
$jour = date("d",mktime(date("H")-5, date("i"), date("s"), date("m") , date("d"), date("Y") ) );
$heure = date("H:i:s",mktime(date("H")-5, date("i"), date("s") ) );	 
$date= date(U);
		
	$time = date('U');
	$timeout = date('U') - 60*5;   // délais de 5 minutes (60 secondes * 5 = 5 minutes 
	
	// Voir si l'IP est donné pour ne pas enregistrer
	$ip_exist= "SELECT * FROM ip_no WHERE ip='$ip'";	// CELLE-CI FONCTIONNE 
	$ip_exist= "SELECT * FROM ip_no WHERE ip='$ip' OR host LIKE '%$host%' ";  	// CELLE-CI NE FONCTIONNE PAS ?????? 
	$ip_exist= "SELECT * FROM ip_no WHERE ip='$ip' OR host LIKE '%"$host"%' ";  	// CELLE-CI NE FONCTIONNE PAS non plus?????? 
	$ip_exist= "SELECT * FROM ip_no WHERE ip='$ip' OR host LIKE '$host%' ";  	// CELLE-CI NE FONCTIONNE PAS non plus??????
	$ip_exist2 = mysql_query($ip_exist);
	
	// Voir si l'IP n'a pas déjà été enregistrer dans les dernières 5 minutes.	
	$ip_timeout= "SELECT * FROM logs WHERE page='$page' AND ip='$ip' AND date>'".$timeout."'";	
	$ip_timeout2 = mysql_query($ip_timeout);
		
		if (mysql_num_rows($ip_exist2) >= 1)
		{
		}		
		elseif (mysql_num_rows($ip_timeout2) >= 1)
        {
		}
        else
		{
			{	mysql_query('INSERT INTO logs VALUES(	"", 
											"'.$page.'", 
											"'.$ip.'",
											"'.$host.'", 
											"'.$annee.'",
											"'.$mois.'", 
											"'.$jour.'", 
											"'.$heure.'",
											"'.$time.'", 
											"'.$urlfrom.'")')or die(mysql_error());
			}
		}?>
Merci de votre aide