IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Dates] Récupérer IP, date et heure


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 105
    Points : 64
    Points
    64
    Par défaut [Dates] Récupérer IP, date et heure
    Bonjour

    J'essai de bricoler un petit script qui permettrait de récupérer l'adresse ip de l'utilisateur ainsi que la date et l'heure...
    Pour le moment j'ai cette partie...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $ip=$_SERVER["REMOTE_ADDR"];
    //définir le fichier txt
    $Fnm = "file/ip.txt"; 
    // ouvrir le fichier en écriture 
    $inF = fopen($Fnm,"w");
    //Eventuellement positionner le pointeur 
    $ptr = ftell($inF);  
    $ptr = fseek($inF,$ptr-10);
    // ecrire ip dans le fichier 
    fputs($inF,$ip,'\r\n');
    //Enfin fermer le fichier 
    fclose($inF);
    Je pensais que cette partie fputs($inF,$ip,'\r\n'); permettait le retour de chariot mais lorsque '\r\n' est en place rien ne s'affiche, si je le retire l'adresse IP est bien inscrite...mais évidemment j'aimerais un retour de chariot...Pouvez vous m'éclairer.

    De deux et idéalement suite à l'inscription de l'IP j'aimerais rajouter la date et l'heure du téléchargement du fichier pour faire

    IP1 - date - heure
    IP2 - date - heure
    et ainsi de suite...

    Je ne trouve pas comment pouvez vous m'indiquer une piste de recherche.

    Merci

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Les caractères échappés (\r, \n, \t, ...) ne sont pas interprétés lorsqu'ils figurent dans une chaîne délimitée par des single quotes. Essayez avec des doubles ou utilisez la constante PHP_EOL.

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 105
    Points : 64
    Points
    64
    Par défaut
    Ok merci..."\n\r" ne fonctionne pas et PHP_EOL, je ne sais comment l'inscrire,

    .PHP_EOL tout simplement?

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fputs($inF,$ip . "\r\n");
    # OU
    fputs($inF, $ip . PHP_EOL);
    Je viens seulement de le voir mais le troisième paramètre de fputs (alias de fwrite) correspond à la longueur à écrire dans le fichier. Elle ne s'utilise pas comme echo, la concaténation est nécessaire ou alors il faut faire deux appels successifs à cette fonction.

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 105
    Points : 64
    Points
    64
    Par défaut
    Super julp, tu as vu juste maintenant l'affichage de l'IP se fait et il y a passage à la ligne...Dans notepad++ l'affichage se fait ainsi

    1 127.0.0.1
    2

    Ce que je ne comprends pas c'est que si je réaccède au fichier en principe il devrait y avoir 2 adresses? Mais là l'affichage demeure la même. Donc ça reste à l'affichage

    1 127.0.0.1
    2

    au lieu de

    1 127.0.0.1
    2 127.0.0.1
    3
    ...

    Est ce qu'il y a quelque chose que j'ai pas bien compris?

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Le problème doit venir de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ptr = ftell($inF);  
    $ptr = fseek($inF,$ptr-10);
    Où vous retournez dix caractères en arrière avant d'y écrire (donc il y a écrasement) ...

  7. #7
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 105
    Points : 64
    Points
    64
    Par défaut
    Oui j'y avais pensé, mais même en enlevant le tout...la situation réside. Je comprends pas trop pourtant c'est pas quelque chose de compliqué me semble?

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Une ouverture en mode 'w' ne convient pas puisque vous écrasez/recréer ainsi le fichier à chaque fois. Le mode append ('a') serait plus approprié dans votre cas (sinon r+). J'y avais pas prêté attention

  9. #9
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 105
    Points : 64
    Points
    64
    Par défaut
    Merci, beaucoup julp

    Je suis super content, effectivement c'était la solution...ça m'a permis aussi de compléter avec la date et l'heure...de la sorte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fputs($inF,$ip . " - " . date("m/d/y - G:i:s") . "\r\n");
    Je sais pas si la syntaxe est correct mais ça fonctionne et les inscriptions se suivent bien dans le fichier texte. Il ne me reste qu'à trouver une méthode de visualiser ces données autrement que dans le fichier texte...Je pense que l'inscription dans un XML serait avantageuse à ce fait...Prochaine étape...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] couleur cellule date differente si date passee, ou date du jour
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 29/03/2011, 09h24
  2. Réponses: 3
    Dernier message: 05/02/2009, 18h01
  3. stl pour récupérer la date et l'heure
    Par shenron666 dans le forum SL & STL
    Réponses: 3
    Dernier message: 25/08/2006, 20h19
  4. [FLASH MX 2004] Récupérer la date et l'heure ....
    Par Invité1 dans le forum Flash
    Réponses: 2
    Dernier message: 06/07/2005, 12h41
  5. récupérer la date et heure système
    Par Rnx69 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/06/2005, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo