Garder session apres header()

Fermé
C2oKie Messages postés 14 Date d'inscription lundi 29 décembre 2008 Statut Membre Dernière intervention 26 mai 2011 - 25 mai 2011 à 13:14
 Jeronimo - 26 mai 2011 à 14:07
Bonjour,

En ce moment je développe un site internet pour mon projet de fin d'année pour le passage du bac stg. Il me faut un script de connexion, j'en suis à cette étape la ( après des recherches sur internet) :

<?php
include("include_co.php");

$login=$_POST['login'];
$mdp=$_POST['mdp'];

$sql="SELECT * FROM Professeurs WHERE username=$login AND password=$mdp";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1){
session_register("login");
session_register("mdp");
header("location:login_success.php");
}
else {
echo "Movais nom ou mot de passe";
}
?>

Je voudrais savoir comment on fait pour garder la session après ce login =)

Est ce que ce code la est la réponse à ma question ? :

<?
session_start();
if(!session_is_registered(myusername)){
header("location:main_login.php");
}
?>

Et si oui , j'aimerais quelques explications si possible pour que je puisse comprendre son fonctionnement pour moi et pour pouvoir l'expliquer pendant l'examen.

Merci d'avance

6 réponses

Bonjour,

la fonction
session_register
est obselète, il faudrait plutôt utiliser
$_SESSION["login"] = $login;


Mais dans ce cas un appel à
session_start()
sera nécessaire avant l'enregistrement de la variable de session.

La documentation officielle http://ch.php.net/manual/fr/function.session-register.php
0
Et après sur tes pages php tu peux faire ce test:

if(empty($_SESSION['login'])) {
	header('location: main_login.php');
	exit;
}
0
Ces fonctions sont obsolètes !

Contente toi simplement de :
$_SESSION["login"] = $login ;
...


Et pour les récupérer dans une autre page :

$login = $_SESSION["login"] ;
...


Pense aux session_start(); au début de chaque script

Pour des explications plus détaillées, google donne ça : http://www.phpsources.org/tutoriel-SESSIONS.htm

PS : attention aux fautes d'orthographes, je ne suis pas sûr que tes profs apprécient :-)

"Mauvais mot de passe"'
0
Copieur :)
0
Ca m'apprendra à répondre à plusieurs messages en même temps ^^
0
C2oKie Messages postés 14 Date d'inscription lundi 29 décembre 2008 Statut Membre Dernière intervention 26 mai 2011
Modifié par C2oKie le 25/05/2011 à 22:07
Merci à vous deux.

Donc si j'ai bien compris, à la place de :

if($count==1){
session_register("login");
session_register("mdp");
header("location:login_success.php");
}
else {
echo "Movais nom ou mot de passe";
}

c'est plutôt :

if($count==1){
$_SESSION["login"] = $login;
header("location:login_success.php");
}
else {
echo "Movais nom ou mot de passe";
}

et au début de chaque page à la quelle l'utilisateur accède grâce à l'identification je doit mettre :

<?php session_start(); ?>

et le bouton de déconnexion va vers une page avec seulement le code suivant :

<?
session_start();
session_destroy();
?>

c'est ca ou j'ai rien compris ? ^^

Puis comment faire la redirection sur la page d'accueil apres la déconnexion? Enfin la page qui est avant l'identification.

Et la même chose pour la redirection vers la première page après l'identification ( la page .html )
0
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
26 mai 2011 à 13:20
bonjour,

et voici un exemple :

http://www.jjsteing.com/Webmastering.html

session.php
0
le session_start(); tu le met une seule fois au tout début de chaque page PHP ou tu vas utiliser les variables de session.

Et pour détruire les sessions tu fais juste session_destroy();
0

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

Posez votre question
C2oKie Messages postés 14 Date d'inscription lundi 29 décembre 2008 Statut Membre Dernière intervention 26 mai 2011
26 mai 2011 à 11:53
Merci , ca marche niquel.

Et donc le session_destroy(); se trouve dans une page .php à la quelle j'associe le bouton de déconnexion ?
0
oui tu peux rediriger sur une page php qui contient le session_destroy(); lors du clique sur le bouton
0