Session de page en page

schancel Messages postés 296 Date d'inscription   Statut Membre Dernière intervention   -  
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   -
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{
}
?>

4 réponses

magicshark Messages postés 402 Date d'inscription   Statut Membre Dernière intervention   13
 
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   Statut Membre Dernière intervention   49
 
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 402 Date d'inscription   Statut Membre Dernière intervention   13
 
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   Statut Membre Dernière intervention   475
 
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   Statut Membre Dernière intervention   49
 
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   Statut Membre Dernière intervention   49
 
ou bien ce type de probleme ne se gere pas avec les sessions
0
magicshark Messages postés 402 Date d'inscription   Statut Membre Dernière intervention   13
 
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   Statut Membre Dernière intervention   49
 
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 402 Date d'inscription   Statut Membre Dernière intervention   13
 
isset=>test si une variable existe nan ?
donc logiquemant
!isset => ??? ( "!" s'ignifie Non ou inverse de )
0