Compteur par origine de l'internaute avec mysql

[Résolu]
Signaler
Messages postés
8
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
24 octobre 2005
-
Messages postés
8
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
24 octobre 2005
-
Quelqu'un peut-il me dire ce qui ne va pas dans ma page suivante ? J'aimerai qu'elle m'affiche le pays d'où vient mon internaute! Ma base de donnée Sql est correctement remplie, mais cette fichue page bug! PS: je débute en php alors il se peut que se soit une faute très bete :(

Voici le code de la page:


<?php
/* Date de création: 24/10/2005 */
?>

<html>

<?php

//***************************************************
// Lecture et insertion du fichier ipcountry
//**********************************************

function
LireFichier()
{
$sqllink= mysql_connect ( "http://www.monicq.com:le_port" ,"le_user","le_mot_de_passe");
mysql_select_db($sqlDB,$sqllink);

$filename ="ipcountry.txt";
// mettez le nom de votre fichier
// ouverture du fichier

$fd = fopen ( $filename, "r" );

// Tant qu'on est pas à la fin

while
(!feof($fd))
{

// on lit le fichier

$buffer = fgets($fd,1000);

// on découpe la chaine lue dans un tableau

$name= explode ( "," ,$buffer);

// on enlève les " (on peut faire un boucle for pour éviter les 5lignes)

$name[0] =str_replace(""","",$name[0]);
$name[1]= str_replace ( """ ,"",$name[1]);
$name[2] =str_replace(""","",$name[2]);
$name[3]= str_replace ( """ ,"",$name[3]);
$name[4] =str_replace(""","",$name[4]);

// on insère les valeurs dans la base

mysql_query ("INSERT INTO pays (IP_FROM,IP_TO,CODE,CODE2,PAYS) values ('".$name[0]."','".$name[1]."','".$name[2]."','".$name[3]."','".$name[4]."')",$sqllink) ;
}
fclose ($fd);

mysql_close($sqllink);

}

//*********************************************************
// Retourne l'adresse IP du visiteur
//*********************************************************

function
get_IP() {

// Gestion des proxys

if
(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$IP = $_SERVER [ 'HTTP_X_FORWARDED_FOR' ];
elseif(
isset($_SERVER['HTTP_CLIENT_IP']))
$IP = $_SERVER['HTTP_CLIENT_IP'];
else

$IP = $_SERVER [ 'REMOTE_ADDR' ];

return
$IP;
}

//*********************************************************
// fonction qui ransforme l'IP en nombre
//*********************************************************

function
IPAddress2IPNumber($dotted) {
$dotted = preg_split( "/[.]+/", $dotted);
$ip = ( double ) ($dotted[0]*16777216)+($dotted[1]*65536)+($dotted[2]*256)+($dotted[3]);
return
$ip;
}

//*********************************************************

// Fonction qui retourne le pays, en paramètre l'adresse IP
//*********************************************************

function
IpEnPays($uneIp)
{
$sqllink =mysql_connect ( "http://www.monicq.com:le_port" ,"le_user","le_mot_de_passe");
mysql_select_db($sqlDB,$sqllink);

// transforme l'ip en nombre

$uneIp = IPAddress2IPNumber ($uneIp);
$select = "SELECT PAYS FROM pays WHERE " .$uneIp." BETWEEN IP_FROM AND IP_TO ";
$resPays = mysql_query ($select,$sqllink);
if
($rowPays =mysql_fetch_row($resPays))
$retour= $rowPays [0];
else

$retour ="Indeterminé";

mysql_free_result($resPays);
return
$retour;
}
?>


</html>

11 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
je ne vois aucun echo, c'est peut-être pour ça :-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
bah echo 'texte à afficher';



(c'est pas dûr de chercher un minimum quand même lol)



Apprendre le PHP

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Tu peux cliquer sur "réponse acceptée" stp ? merci

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,



quelle est l'erreur que tu rencontres ?

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
8
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
24 octobre 2005

L'erreur c'est qu'il ne se passe rien ! :( page blanche
Messages postés
8
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
24 octobre 2005

effectivement... lol je suis débutant depuis hier en php, je ne maitrise absolument rien pour le moment :s !
Hum pourrais tu m'expliquer comment utiliser un echo?
Messages postés
8
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
24 octobre 2005

Bah j'ai cherché j'ai trouvé le script ci-dessus ! Mais le hic c'est que j'ai du mal à m'y retrouver dedans! je comprend le fonctionnement de chaque bloc mais j'ai du mal à m'y retrouver dans les variables
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
C'est joli de faire des fonctions (ou de les copier), mais il faut savoir les utiliser !



Pour appeler une fonction, il suffit de taper son nom :

<?php

tafonction();

?>

Ce qui aura pour effet d'appeler ta fonction.

Lorsqu'il y a un return sur une fonction, on peut également récupérer sa valeur !

<?php

function say_x() {

return 'x';

}

$var = say_x();

echo $var;

?>

Test à faire toi même ! Tu comprendras dès lors comment marche une fonction et que son inclusion seul ne suffit pas =)
Messages postés
8
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
24 octobre 2005

oulé calmos patatos, j'ai dis que je commençais le php pas que j'étais entièrement débile! j'ai fais un copier coller mais ça ce n'est qu'un bloc de fonction du programme finale!

En tout cas, merci anthomicro pour ton aide! J'avais effectivement zapper le "echo" !
Now tout est ok et j'ai mon compteur de visiteur en fonction de leur origine le résultat est exploité par une animation flash pour faire une jolie ptite anim sur une map-monde! c'est trop cool!!
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
"oulé calmos patatos, j'ai dis que je commençais le php" Je sais bien,
tu l'as déja dis plus haut. J'ai rien dit de méchant pourtant,
seulement un petit cours sur les fonctions (très petit d'ailleurs, je
ferais un bien mauvais prof =) )



"j'ai fais un copier coller mais ça ce n'est qu'un bloc de fonction du
programme finale!" Justement, ce que je te reproche, c'est de faire un
copier/coller sans savoir comment ca fonctionne au préalable :)
Messages postés
8
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
24 octobre 2005

Ne t'inquiète pas, je sais bien que ce n'était pas méchant! Comme on dit, la fin justifie les moyens c'est pour celà que j'ai fais du copier coller, c'est un travail disons urgent.