Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1493 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Vérifier les session_id()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Vérifier les session_id()

n°1717316
akalaan
Posté le 14-04-2008 à 16:12:31  profilanswer
 

Bonjour à tous,
 
Mon problème est le suivant :
 
J'ai une page qui m'affiche un texte.
 
Lorsque quelqu'un va sur cette page, je récupère son login/groupe windows afin de l'enregistrer dans un fichier ce qui me servira d'historique, mais je dois également afficher tous les utilisateurs étant actuellement sur cette page.
 
Pour récupérer le login/windows, je passe par NTLM donc par session php.
 
Je récupère donc ces infos et je les stocks dans un fichier.
 
Mon réel prb est que lorsque l'utilisateur rafraichit la page, cela créer de nouveau un enregistrment dans le fichier.
 
Je pensais donc faire une condition en disant (vulgarisation algorithme) :
 
Si le session_id() est vide, alors session_start() et enregistrement dans le fichier sinon je ne fait rien
 
Je pense que je me complique la vie.
 
Je veux seulement enregistrer sa premiere connexion et non pas tout (connexion plus réactualisation)
Jspr ne pas trop etre ambiguë
 
Auriez vous des idées.
 
Merci d'avance,  
 
Cordialement,


Message édité par akalaan le 15-04-2008 à 11:25:10
mood
Publicité
Posté le 14-04-2008 à 16:12:31  profilanswer
 

n°1717329
masterpsx
Aigloun foutougrafe
Posté le 14-04-2008 à 16:25:22  profilanswer
 

Tu peut utiliser l'ip du visiteurs/membres, si besoin tu inséres une date au format timestamp pour déterminer le délai a partir du moment ou tu insére une nouvelle ligne.
 
Tu peut aussi utiliser un cookie avec le temps de validité c'est même encore plus simple et recupérable n'importe ou.

n°1717382
akalaan
Posté le 14-04-2008 à 17:52:47  profilanswer
 

Non je préférerai me référer au session_id ce qui me permet d'avoir une valeur unique.
 
Finalement j'ai décidé d'inclure le session_id dans mon fichier texte pour ensuite faire un test.

Code :
  1. <?php
  2. session_start();
  3. include_once('ntlm.php');
  4. $file = ('/data/www/testintrafone/historique/test.csv');
  5. if (file_exists($file)) {
  6. $open = fopen($file,'a+');
  7. $tableau= file($file);
  8. $id = session_id();
  9. //echo $id;
  10.  foreach($tableau as $line){
  11.   if(strstr($line,$id)){
  12.    fclose($open);
  13.  }}
  14.  fwrite($open,session_id()."\n" );
  15.  fclose($open);
  16. }else{
  17. echo "Fichier inexistant";
  18. }
  19. ?>


 
Cela enregistre une seule fois la session mais lorsque je fais un refresh de la page, voici l'erreur que ça me donne.

Code :
  1. Warning: fwrite(): 4 is not a valid stream resource in /data/www/testintrafone/test.php on line 17
  2. Warning: fclose(): 4 is not a valid stream resource in /data/www/testintrafone/test.php on line 18


 
Pourriez vous m'aider

n°1717389
flo850
moi je
Posté le 14-04-2008 à 18:03:27  profilanswer
 

il y a une raison particuliere a utiliser un fichierplutot qu'une bdd ? parceque ca va etre vite tres long tes tests  
 
et sinon, tu n'ouvre le fichier que si il existe , masi tu ecris dedans quelque soit le cas
 
il n'est donc jamais crée


---------------

n°1717401
masterpsx
Aigloun foutougrafe
Posté le 14-04-2008 à 18:31:59  profilanswer
 

Pourquoi stocker le session_id dans ton fichier et faire une comparaison, utilise simplement une variable de session avec une condition.

n°1717548
akalaan
Posté le 15-04-2008 à 09:23:46  profilanswer
 

Merci pour vos réponses,
 
J'utilise un fichier plutôt qu'une BDD car :
1)_ la page à consulter est destiné à être visualisée par 4 ou 5 personne par soir.
2)_ L'historique sera concervé 1 ou 2 jours et après on viens écraser dessus les nouveaux logs.
3)_ de plus nous commençons à avoir pas mal de bdd (oracle,SQL SERVER, MYSQL) donc je préfère utilisé un fichier au format csv comme ca on pourrait le traiter par la suite.
4)_ je veux utiliser le session_id car je pensais que cela me permettrait d'avoir des enregistrement unique.
 
 
flo850 :
Effectivement, le test n'est pas complet car pour l'instant je veux simplement tester la valeur de la session, c'est du test, je sais que le fichier existe.
 
 
masterpsx:
Qu'entend tu par "utilise simplement une variable de session avec une condition" ?
 
Merci d'avance,

n°1717566
masterpsx
Aigloun foutougrafe
Posté le 15-04-2008 à 09:53:09  profilanswer
 

akalaan a écrit :

Merci pour vos réponses,
masterpsx:
Qu'entend tu par "utilise simplement une variable de session avec une condition" ?
 
Merci d'avance,


C'est simple le but des sessions, comme pour les cookies, c'est de pouvoir stocker des variables qui seront accessible tant que la session est valide.
exemple :

Code :
  1. session_start();
  2. if (!isset($_SESSION['visitor']))
  3. {
  4.     $_SESSION['visitor'] = 1;
  5.     include_once('ntlm.php'); 
  6. }


Ton fichier ne sera inclus que si la variable $_SESSION['visitor'] existe et donc qu'une session est active.

n°1717672
akalaan
Posté le 15-04-2008 à 11:24:21  profilanswer
 

Et bien un grand merci à vous et surtout à toi masterpsx.
Tu avais tout à fait raison, j'ai placé cette variable conditionnel et tout fonctionne.
 
Cela m'agace de ne jamais avoir ce genre d'idée.
 
 
Voici mon code si cela interesse quelqu'un

Code :
  1. $file = ("/data/www/historique/historique.csv" );
  2.    $open = fopen($file,'a+');
  3.    if (file_exists($file)) {
  4.     if(!isset($_SESSION['valid'])){
  5.      $_SESSION['valid']=1;
  6.      //fwrite($open,$ID);
  7.      fwrite($open,$_SESSION['user'].",".$_SESSION['domain'].",".$_SESSION['IP'].",".$_SESSION['date']."\n" );
  8.      //echo "enregistre";
  9.      fclose($open);
  10.     }else{
  11.      //echo "existe deja";
  12.     }
  13.    }else{
  14.     echo "fichier inconnu";
  15.    }


 
Cordialement,


Message édité par akalaan le 21-04-2008 à 10:21:17
n°1717712
masterpsx
Aigloun foutougrafe
Posté le 15-04-2008 à 12:00:18  profilanswer
 

Pas de problème et bonne continuation.
 
Et ne t'inquiéte pas, c'est difficile de penser a tout surtout pour ses propres scripts, on se complique souvent la vie pour rien :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Vérifier les session_id()

 

Sujets relatifs
[RESOLU]Excel : Numéro de ligne remplie[Résolu]Filtre dans un FileDialog
Mise à jour BD[Résolu]petit javascript simple pour vérifier qu un site est on-line ?
[Résolu] Récuperer login Windows Intranet[Résolu][Lex] reconnaitre un mauvais identifiant
Onglets plus images plus evenements souris avec GTK. Résolu[Résolu] MySQL et condition sur le résultat retourné par une requête
[VB] [EXCEL] Copier cellules -> RESOLU 
Plus de sujets relatifs à : [Résolu] Vérifier les session_id()


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR