Les session en php

Fermé
yuri648 Messages postés 677 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 20 mai 2015 - 11 sept. 2009 à 18:03
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 11 sept. 2009 à 20:40
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;

5 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
11 sept. 2009 à 18:07
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
yuri648 Messages postés 677 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 20 mai 2015 7
11 sept. 2009 à 18:09
meme la page indexk.php sur la quel doit acceder si l'identification est réussite??
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
11 sept. 2009 à 18:13
Si tu gère des sessions, TOUTES tes pages doivent avoir un 'session_start()'.

Donc oui :)
0
yuri648 Messages postés 677 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 20 mai 2015 7
11 sept. 2009 à 18:20
tjr le meme prb
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
11 sept. 2009 à 20:40
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