Garder session apres header()

C2oKie Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
 Jeronimo -
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

Jeronimo
 
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
Jeronimo
 
Et après sur tes pages php tu peux faire ce test:

if(empty($_SESSION['login'])) {
	header('location: main_login.php');
	exit;
}
0
vinc
 
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
Jeronimo
 
Copieur :)
0
vinc
 
Ca m'apprendra à répondre à plusieurs messages en même temps ^^
0
C2oKie Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
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 1670 Date d'inscription   Statut Contributeur Dernière intervention   181
 
bonjour,

et voici un exemple :

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

session.php
0
Jeronimo
 
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   Statut Membre Dernière intervention  
 
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
Jeronimo
 
oui tu peux rediriger sur une page php qui contient le session_destroy(); lors du clique sur le bouton
0