probleme de session

probleme de session - PHP - Programmation

Marsh Posté le 21-07-2005 à 15:23:26    

bonjour,  
 
mon navigateur maffiche ceci :  
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/html/www.clic-online.fr/phototheque/_sources/verif.php:6) in /var/www/html/www.clic-online.fr/phototheque/_sources/connect.php on line 3
erreur que je ne connais pas, donc je fais appel à vous, voici le code  
 

Code :
  1. <?php
  2. session_start();
  3. $db=mysql_connect('mysql.clic-online.fr','******','******');
  4. mysql_select_db ('phototheque',$db);
  5. $host="mysql.clic-online.fr";
  6. $login="******";
  7. $pass="*********";
  8. $base="phototheque";
  9. ?>


 
merci
julie

Reply

Marsh Posté le 21-07-2005 à 15:23:26   

Reply

Marsh Posté le 21-07-2005 à 15:26:24    

Ca veut dire qu'il y a quelque chose avant le <?php

Reply

Marsh Posté le 21-07-2005 à 15:26:58    

tu devrais mettre le code des pages verif.php et connect.php (je suppose que cela, c'est connetct.php ?)

Reply

Marsh Posté le 21-07-2005 à 15:28:27    

oui ca c'est connect, voici verif.php

Code :
  1. <html>
  2. <head>
  3. <title>verification</title>
  4. <link rel="stylesheet" href="style.css" type="text/css">
  5. </head>
  6. </html>
  7. <?php
  8. require('connect.php');
  9. if (empty($pseudo) && empty($password))
  10. {
  11. $sql1 = "SELECT nom_admin,password_admin FROM admin WHERE nom_admin='$pseudo' AND password_admin='$password';";
  12. $req1=mysql_query($sql1) or die ('Erreur SQL1 <br>').$sql1.'<br>'.mysql_error();
  13. $nlignes=mysql_num_rows($req1);
  14. if ($nlignes!=0)
  15.  {
  16.  list($nom_admin,$password_admin)=mysql_fetch_array($req1);
  17.  $_SESSION["pseudo"]=$nom_admin;
  18.  $_SESSION["password"]=$password_admin;
  19. ?>
  20. <script language="JavaScript">
  21. setTimeout("parent.frames['menu'].location='menu_admin.php'",400);
  22. setTimeout("parent.frames['accueil'].location='accueil.html'",400);
  23. </script>
  24. <?php
  25.  }
  26. else
  27.  {
  28.  $sql2 = "SELECT pseudo_client,password_client FROM client WHERE pseudo_client='$pseudo' AND password_client='$password';";
  29.  $req1=mysql_query($sql2) or die ('Erreur SQL2 <br>').$sql2.'<br>'.mysql_error();
  30.  $nlignes=mysql_num_rows($req2);
  31.  if ($nlignes!=0)
  32.   {
  33.   list($pseudo_client,$password_client)=mysql_fetch_array($req2);
  34.   $_SESSION["pseudo"]=$pseudo_client;
  35.   $_SESSION["password"]=$password_client;
  36. ?>
  37. <script language="JavaScript">
  38. setTimeout("parent.frames['menu'].location='menu_client.php'",400);
  39. setTimeout("parent.frames['accueil'].location='accueil.html'",400);
  40. </script>
  41. <?php
  42.   }
  43.  else
  44.   {
  45.   $sql3 = "SELECT pseudo_photographe,password_photographe FROM photographe WHERE pseudo_photographe='$pseudo' AND password_photographe='$password';";
  46.   $req13=mysql_query($sql3) or die ('Erreur SQL3 <br>').$sql3.'<br>'.mysql_error();
  47.   $nlignes=mysql_num_rows($req3);
  48.   if ($nlignes!=0)
  49.    {
  50.    list($pseudo_photographe,$password_photographe)=mysql_fetch_array($req3);
  51.    $_SESSION["pseudo"]=$pseudo_photographe;
  52.    $_SESSION["password"]=$password_photographe;
  53. ?>
  54. <script language="JavaScript">
  55. setTimeout("parent.frames['menu'].location='menu_photographe.php'",400);
  56. setTimeout("parent.frames['accueil'].location='accueil.html'",400);
  57. </script>
  58. <?php
  59.    }
  60.   else
  61.    {
  62. ?>
  63. <script language="JavaScript">
  64.   setTimeout("parent.frames['menu'].location='menu.php'",400);
  65. </script>
  66. <?php
  67.    session_destroy();
  68.    }
  69.   }
  70.  }
  71. }
  72. else
  73. {
  74. print ("<p class=titre>remplir tous les champs" );
  75. ?>
  76. <script language="JavaScript">
  77.   setTimeout("parent.frames['menu'].location='menu.php'",10000);
  78. </script>
  79. <?php
  80. }
  81. ?>

Reply

Marsh Posté le 21-07-2005 à 15:29:53    

C'est une question qui revient 5 fois par semaine, qui est traitée sur 99% des sites parlant de PHP : ne jamais afficher quelque chose avant un session_start ou un header [:spamafote] Là t'as des <html><head> etc...

Reply

Marsh Posté le 21-07-2005 à 15:30:59    

session_start doit etre appellée avant qu'une en-tete html ne soit envoyée au navigateur.
 
Une en-tete HTML sera envoyée soi explicitement avec la fonction header, soit implicitement par le serveur par un echo, un print, ou de l'html.
 
Pour remedier a ton probleme appelle session_start avant tout autre chose. :)

Reply

Marsh Posté le 21-07-2005 à 15:31:23    

FlorentG a écrit :

C'est une question qui revient 5 fois par semaine, qui est traitée sur 99% des sites parlant de PHP : ne jamais afficher quelque chose avant un session_start ou un header [:spamafote] Là t'as des <html><head> etc...


 
+1
 
règle d'or n°1 rien avant le session_start même pas un espace (hihi bon j'exagère un peu mais c'est presque ça...  :lol:  :lol:

Reply

Marsh Posté le 21-07-2005 à 15:33:36    

effectivement j'avais pas bien cherché... désolée :')
par contre il m'affiche remplir tous les champs alors qu'il sont remplis!

Reply

Marsh Posté le 21-07-2005 à 15:39:03    

cmoijulie a écrit :

effectivement j'avais pas bien cherché... désolée :')
par contre il m'affiche remplir tous les champs alors qu'il sont remplis!


Peut-etre qu'en modifiant ton test : if (empty($pseudo) && empty($password))
par : if (!empty($pseudo) && !empty($password))
ca ira mieux.

Reply

Marsh Posté le 21-07-2005 à 15:40:57    

rhoo j'ai honte davoir fait un poste pour des erreurs si bêtes...
merci beaucoup :)

Reply

Marsh Posté le 21-07-2005 à 15:40:57   

Reply

Marsh Posté le 21-07-2005 à 15:47:49    

;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed