Tom's Guide > Forum > Programmation > PHP sauvegarde de visite (avec l'ip)

PHP sauvegarde de visite (avec l'ip)

Forum Programmation : PHP sauvegarde de visite (avec l'ip)

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

voila mon script en PHP, il a pour but de sauvegarder les IP des visiteurs dans un fichier texte et par une comparaison dire si le visiteur est déja passé durant la journée.

Code :
  1. <?php
  2.     //ouverture ou creation fichier
  3.     $fichier = date("Y-m-d" );
  4.     $fp=fopen("spy/$fichier.txt","a" );
  5.     $fsz=filesize("spy/$fichier.txt" );
  6.     //fai
  7.     $fai = gethostbyaddr("$REMOTE_ADDR" );
  8.     $ip = $_SERVER['REMOTE_ADDR'];
  9.     //initialisation de la variable de presence : 1 si present et 0 si absent
  10.     $entrer = 0;
  11.     //1er essai
  12.     /*while(!feof($fp)){
  13.         $test = fscanf($fp,"%s\n" );
  14.         echo 'la valeur test est :'.$test;
  15.         if ($test == $ip){
  16.             $entrer = 1;
  17.             break;
  18.             }
  19.     }*/
  20.     //2eme essai
  21.     $lines = file ('spy/'.$fichier.'.txt');
  22.     foreach ($lines as $line_num => $line) {
  23.         if (ereg ($line , $ip)){
  24.             $entrer = 1;
  25.             break;
  26.         }
  27.     }
  28.     echo 'la valeur de entrer est : '.$entrer;
  29.     if ($entrer == 1){
  30.         echo 'ip deja enregistrer';
  31.     }
  32.     else{
  33.         fseek($fp,$fsz);
  34.         fputs($fp,"$ipp\n" );
  35.         echo 'ip enregistrer';
  36.     }
  37. fclose($fp);
  38. ?>



Le probléme c'est que la comparaison se fait mal, la valeur d'entré est toujours a 0 alors que les IP sont les méme.
Quelqu'un peut m'aider?
Merci

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

intervertit $line et $ip:

Code :
  1. if (ereg ($ip, $line))


file retourne un tableau de ligne avec le retour à la ligne.

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

Pourquoi utiliser un fichier texte, alors qu'une base de données serait bien plus adéquate pour ce genre de chose, tant au niveau performance que simplicité du code ?

------------------------------ Sethpolma
Répondre à Sethpolma

au lieu de l'ip que tu places dans un fichier texte, met plutôt sa somme md5. Je suppose que le fichier est visible de tous en plus, niveau respect de la vie privée c'est super bof quoi.

Évite ereg() aussi qui est une fonction très très lourde ! alors que strstr() répondra à tes besoins les plus primaires.

Juste quelques suggestions ;)

------------------------------ 20minutes.fr, l'information en continu.
Répondre à SiM07

Sethpolma a écrit :

Pourquoi utiliser un fichier texte, alors qu'une base de données serait bien plus adéquate pour ce genre de chose, tant au niveau performance que simplicité du code ?



Soit, il n'a pas de bdd.
Soit, il veut utilisé le fichier pour autre chose.
Soit, il ne connait pas encore ce qu'est une bdd. ;)

Répondre à St3fff

Citation :

au lieu de l'ip que tu places dans un fichier texte, met plutôt sa somme md5. Je suppose que le fichier est visible de tous en plus, niveau respect de la vie privée c'est super bof quoi.



et les .htaccess ?

------------------------------ Je pense donc tu m'suis !
Répondre à Dark-Koopa

St3fff a écrit :

Soit, il n'a pas de bdd.
Soit, il veut utilisé le fichier pour autre chose.
Soit, il ne connait pas encore ce qu'est une bdd. ;)



Soit il sait que un accès à une BDD est bien plus lourd qu'un accès sur un simple fichier texte.

------------------------------ 20minutes.fr, l'information en continu.
Répondre à SiM07
Tom's Guide > Forum > Programmation > PHP sauvegarde de visite (avec l'ip)
Aller à :

Il y a 941 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens