Les session en php

yuri648 Messages postés 785 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
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. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    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.
    0
  2. yuri648 Messages postés 785 Statut Membre 7
     
    meme la page indexk.php sur la quel doit acceder si l'identification est réussite??
    0
  3. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    Si tu gère des sessions, TOUTES tes pages doivent avoir un 'session_start()'.

    Donc oui :)
    0
  4. yuri648 Messages postés 785 Statut Membre 7
     
    tjr le meme prb
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Alain_42 Messages postés 5413 Statut Membre 904
     
    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> 
    0