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

  FORUM HardWare.fr
  Programmation
  PHP

  Gestion des sessions chez free

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Gestion des sessions chez free

n°1236233
babeuf
Posté le 02-11-2005 à 11:58:49  profilanswer
 

Alors voila :
 
pour faire tourner mon site en local : j utilise le bout de code suivant :
 

Code :
  1. <script type="text/javascript">
  2. <!--
  3. window.onload=montre;
  4. function montre(id) {
  5. var d = document.getElementById(id);
  6. for (var i = 1; i<=10; i++) {
  7.  if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
  8. }
  9. if (d) {d.style.display='block';}
  10. }
  11. //-->
  12. </script>
  13. <html>
  14. <?
  15. session_start();
  16. if (session_is_registered(login) && $_SESSION[login] != ''){
  17. $ident = $_SESSION[ident];
  18. $login = $_SESSION[login];
  19. $rankid = $_SESSION[rankid];
  20. }
  21. ?>


 
ce bout de code est présent en haut de toutes mes pages. et me sert a vérifier si l utilisateur est loggué ou non.  
 
mon site tourne parfaitement en local ( easyphp) mais chez free, j ai droit a l erreur suivante :  
 

Code :
  1. Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/free.fr/a/b/toons85/naweb/index.php:1) in /var/www/free.fr/a/b/toons85/naweb/index.php on line 15
  2. Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/free.fr/a/b/toons85/naweb/index.php:1) in /var/www/free.fr/a/b/toons85/naweb/index.php on line 15


 
 
si je modifie mon script de la sorte :  
 

Code :
  1. <?
  2. session_start();
  3. if (session_is_registered(login) && $_SESSION[login] != ''){
  4. $ident = $_SESSION[ident];
  5. $login = $_SESSION[login];
  6. $rankid = $_SESSION[rankid];
  7. }
  8. ?>
  9. <script type="text/javascript">
  10. <!--
  11. window.onload=montre;
  12. function montre(id) {
  13. var d = document.getElementById(id);
  14. for (var i = 1; i<=10; i++) {
  15.  if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
  16. }
  17. if (d) {d.style.display='block';}
  18. }
  19. //-->
  20. </script>
  21. <html>


 
mes sessions ne fonctionnent plus, ni chez free, ni en local... (j ai bien créé le repertoire sessions). mais aucune erreur ne s affiche.
 
je vous met aussi le code de ma page de login :  
 
( qui elle aussi est basée sur mon modèle et contient donc le code ci dessus en haut de page )  
 

Code :
  1. include('config.php');
  2. @mysql_connect($host,$log,$pass);
  3. @mysql_select_db($dbname);
  4. $rep = @mysql_query("select * from users where login = '".$login."' and password = '".$password."'" );
  5. $res = @mysql_fetch_array($rep);
  6. if ($res != "" )
  7.     
  8.      {
  9.     
  10.      setcookie(session_name(),session_id(),time()+3600);
  11.      $_SESSION['ident'] = $res['id'];
  12.      $_SESSION['login'] = $res['login'];
  13.      $_SESSION['rankid'] = $res['rankid'];
  14.     
  15.     
  16.      echo("<script>document.location.replace('index.php');</script>" );
  17.      }
  18.     
  19.     
  20.      ?>


 
ma requete sql fonctionne.
 
Je m'en remet donc a votre science !  
 
 

mood
Publicité
Posté le 02-11-2005 à 11:58:49  profilanswer
 

n°1236248
jouj
Posté le 02-11-2005 à 12:10:41  profilanswer
 

Salut
 
Je suppose que tu as un fichier index.php qui inclus les différentes pages php.
Je te conseil donc vivement de mettre  

Code :
  1. <?php
  2. session_start();
  3. if (session_is_registered("login" ) && $_SESSION["login"] != "" ){
  4.     $ident = $_SESSION["ident"];
  5.     $login = $_SESSION["login"];
  6.     $rankid = $_SESSION["rankid"];
  7. ?>


au tout début de tout fichier index.php :)
 
et au moment de connexion, tu ne fais pas de session_register("login" );
Donc, c'est bizarre que ton session_is_registered("login" ) marche...


---------------
+jouj+
n°1236255
babeuf
Posté le 02-11-2005 à 12:16:53  profilanswer
 

en fait ce bout de code est présent en haut de toutes mes pages.
( je n inclue pas mes pages dans mon index.php, mais le modèle que j utilise est appliqué a toutes les pages)  
 
pour ce qui est de stocker la variable login, je le fais dans ma page de login :  
 
$_SESSION['login'] = $res['login'];
 
cela ne fonctionne toujours pas en modifiant le code de cette maniere :
 

Code :
  1. setcookie(session_name(),session_id(),time()+3600);
  2. session_register("login" );
  3. session_register("ident" );
  4. session_register("rankid" );
  5. $_SESSION['ident'] = $res['id'];
  6. $_SESSION['login'] = $res['login'];
  7. $_SESSION['rankid'] = $res['rankid'];


Message édité par babeuf le 02-11-2005 à 12:19:59
n°1236264
babeuf
Posté le 02-11-2005 à 12:26:23  profilanswer
 

je pense voir d ou vient le probleme ....
 
apparement le bout de code php en tout début de mon modèle n est pas appliqué a mes pages php si il est placé avant le <html> (alors que la fonction javascript est bien prise en compte...), alors qu'il est bien pris en compte s il est placé apres celui ci .
 
 
 
qq1 voit une solution pour que ce code soit mis de facon automatique sur toutes mes pages ?

n°1236270
babeuf
Posté le 02-11-2005 à 12:33:31  profilanswer
 

effectivement, si je rajoute le bout de code en début de page a la main, cela fonctionne..

n°1236639
mahuf
Posté le 02-11-2005 à 16:51:49  profilanswer
 

Si tu veux rajouter un bout de code sur toutes tes pages tu peux faire des header et les rajouter en include ...


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

  Gestion des sessions chez free

 

Sujets relatifs
Support installation d'un wikipedia sur freeProblèmes entres sessions et affichage en pseudo frames
PB de Connexion base free[perl] gestion de fichiers de configuration
[FREE] Supprimer un repertoire, c possible ?perl et windows : gestion des ressources
[REPLICATION] Gestion des réplicas d'une base Access 97Cherche outil de gestion de bug orienté web
question sur les free ..[Python] Gestion de processus
Plus de sujets relatifs à : Gestion des sessions chez free


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