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. 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> 
    1. Contributeur
      Si tu gère des sessions, TOUTES tes pages doivent avoir un 'session_start()'.

      Donc oui :)
      1. meme la page indexk.php sur la quel doit acceder si l'identification est réussite??
        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.