Se connecter avec
S'enregistrer | Connectez-vous

PHP sauvegarde de visite (avec l'ip)

Dernière réponse : dans Programmation

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


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

Autres pages sur : php sauvegarde visite

Lassé par la pub ? Créez un compte
Expert Programmation

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 ;) 

Sethpolma a dit :
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. ;) 
Expert Programmation

St3fff a dit :
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.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde