Session de page en page

Fermé
schancel Messages postés 296 Date d'inscription dimanche 20 mars 2011 Statut Membre Dernière intervention 7 décembre 2018 - 4 août 2011 à 13:56
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 5 août 2011 à 13:48
Bonjour,

premierement j'aimerai connaitre au fond comment fonctionne le session en php
et aussi regarder ce code j'aimerai que vous me disiez comment transmettre les sessions de page en page de telle sorte a ce que si un visiteur essai d'acceder a une page qui necessite un mot de passe on teste si les session existe ,dans le cas contraire il se voit redirigé sur la page d'accueil
voici un bout de code de la session
les variables session ont ete declarer dans la page de reception des POST
<?php
if ( isset($_SESSION['prenom']) and isset($_SESSION['email']) and isset($_SESSION['pass']) and isset($_SESSION['confirm']) and isset($_SESSION['nom'])){
session_start();
}
elseif(empty($_SESSION['prenom']) and empty($_SESSION['email']) and empty($_SESSION['pass']) and empty($_SESSION['confirm']) and empty($_SESSION['nom'])){
header('location: sb.html');
}
else{
}
?>

A voir également:

4 réponses

magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 13
4 août 2011 à 14:08
bah tu sais d'ja pas mal sur les session le truc important pour qu'elles suivent t'es pas ge c'est premiere ligne (juste apres <?php) tu ecrit session_start();
et si tu veux detruire la session session_destroy();
0
schancel Messages postés 296 Date d'inscription dimanche 20 mars 2011 Statut Membre Dernière intervention 7 décembre 2018 49
Modifié par schancel le 4/08/2011 à 14:50
et sur les autres page affilier a session_start() ne necessite plus de session_start() ?
aussi ma question est simple j'aimerai tester l'existence des session sur les autres page
0
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 13
4 août 2011 à 14:52
j'ai pas tout compris ^^

je vais refaire mon explication:

pour que la session rèste active d'une page à l'autre, toutes les pages doivent commencer par session_start();

de cette manière un utilisateur qui a une session pourra se rendre partout et ne pas perdre sa session
si par exemple index.php a bien sont session_start() mais pas la page admin_compte.php,

en allant sur cette page, la session aura disparu.
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
4 août 2011 à 15:00
J'ai corrigé ton code:
<?php
session_start();
if ( !isset($_SESSION['prenom']) && !isset($_SESSION['email']) && !isset($_SESSION['pass']) && !isset($_SESSION['confirm']) && !isset($_SESSION['nom']))
{
header('Location: sb.html');
exit();
}
else{
}
?> 

Toutes tes pages utilisant des variables de session doivent impérativement commencer par session_start();

empty() vérifie si tu variable est vide. Ton script ne faisait donc rien dans le cas où les variables de session ne sont pas déclaré.

Une page a voir pour les sessions: http://www.lephpfacile.com/cours/18-les-sessions
0
schancel Messages postés 296 Date d'inscription dimanche 20 mars 2011 Statut Membre Dernière intervention 7 décembre 2018 49
Modifié par schancel le 4/08/2011 à 16:26
malheuresement lorsque j'accede a home.php je me vois rediriger a sb.html
pourtant les variable $_session existe
je m'explique pour une derniere fois

la page sb.html corespond a la page d'inscription
et home.php la page d'accueil lorsqu'on est deja inscrit
la page intermediaire ici est sbs.php (la page ou commence le session_start()) et qui traite le formulaire voici un bout de son code
sbs.php
<?php
session_start();
?>
les sessions en elle meme sont un peu plus basse dans le site
$_SESSION['prenom']=$_POST['prenom'] ; $_SESSION['email']=$_POST['email']; $_SESSION['pass']=$_POST['pass']; $_SESSION['confirm']=$_POST['confirm'];
$_SESSION['nom']=$_POST['nom'];

j'aimerai que si par exemple quelqu'un tape dans sa barre d'adresse home.php
sans etre inscrit il se voit rediriger a sb.html
mais avec ce code meme quand je m'inscrit j'accede a sbs.php
je clique sur le lien pour me connecter a home.php
je me vois rediriger
c'est ca en fait mon probleme
0
schancel Messages postés 296 Date d'inscription dimanche 20 mars 2011 Statut Membre Dernière intervention 7 décembre 2018 49
4 août 2011 à 15:56
ou bien ce type de probleme ne se gere pas avec les sessions
0
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 13
4 août 2011 à 15:59
on peut avec des session

dans home tu test si tes variable de sessions existe alors ok sinon redirige
0
schancel Messages postés 296 Date d'inscription dimanche 20 mars 2011 Statut Membre Dernière intervention 7 décembre 2018 49
Modifié par schancel le 4/08/2011 à 16:37
je croi pouvoir me retrouver si vous me dite comment tester si une variable n'existe pas car
empty c'est pour tester si un input est vide
else en fait s'execute malgré tout
sur ce je voudrait mettre un elseif(variable absente){
redirection
}
0
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 13
4 août 2011 à 17:33
isset=>test si une variable existe nan ?
donc logiquemant
!isset => ??? ( "!" s'ignifie Non ou inverse de )
0