Les session en php

Bonjour,
je suis un debutant en php et j'ai un probleme sur les session;
j'ai creé une table user qui contient login et pass;
quand j'identifie une session sa marche bien mais quand je deconnecte et je copie le lien de la page a afficher quand la session est ouvert elle souvre normalement elle souvre pas voila tout le code:

<html>
<form action="index.php" method="post" >
login:<input type="text" name="login"></br>
mot de pass:<input type="text" name="pass"></br>
<input type="submit" name="ok"><input type="submit" name="dec" value="deconnection">
<?php
if($_POST['ok'])
{
$login=$_POST['login'];
$pass=$_POST['pass'];
include("connect.php");
$c=new connection();
$c->acces();
$q=mysql_query("select *from user where login='$login' and pass='$pass'");
$s=mysql_fetch_object(($q));
if(is_object($s))
{
session_start() ;
$_SESSION["login"]=$login;
header("location: indexk.php");

}
}

if($_POST['dec']=="deconnection"){
session_start() ;
//destruction de toutes les variable de sessions
session_unset() ;
//destruction de la session
session_destroy() ;
}
?>

</form>

</html>

et merci d'avance;
Configuration: Windows XP
Firefox 2.0.0.20

5 réponses

  1. Contributeur
    Bonjour,

    L'instruction session_start() est à mettre en tout premier dans les pages, et une seule fois pour chaque page.

    Tes balises <html></html> ne servent à rien.
    1. meme la page indexk.php sur la quel doit acceder si l'identification est réussite??
      1. Contributeur
        Si tu gère des sessions, TOUTES tes pages doivent avoir un 'session_start()'.

        Donc oui :)
        1. il faut que session_start() soit avant toute balise html

          alors passes la partie de code php avant la partie html

          <?php
          if($_POST['ok'])
          {
          $login=$_POST['login'];
          $pass=$_POST['pass'];
          include("connect.php");
          $c=new connection();
          $c->acces();
          $q=mysql_query("select *from user where login='$login' and pass='$pass'");
          $s=mysql_fetch_object(($q));
          if(is_object($s))
          {
          session_start() ;
          $_SESSION["login"]=$login;
          header("location: indexk.php");
          
          }
          }
          
          if($_POST['dec']=="deconnection"){
          session_start() ;
          //destruction de toutes les variable de sessions
          session_unset() ;
          //destruction de la session
          session_destroy() ;
          }
          ?>
          <html>
          <form action="index.php" method="post" >
          login:<input type="text" name="login"></br>
          mot de pass:<input type="text" name="pass"></br>
          <input type="submit" name="ok"><input type="submit" name="dec" value="deconnection">
          
          
          
          </form>
          
          </html>