Faire suivre session dans affichage par page
francdrum
Messages postés
858
Date d'inscription
Statut
Membre
Dernière intervention
-
francdrum Messages postés 858 Date d'inscription Statut Membre Dernière intervention -
francdrum Messages postés 858 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Bonjour,
Je viens à ma grande surprise de réussir à faire un formulaire d'identification et afficher une page
Donc, non content de ça, je viens d'essayer d'insérer une page du site à l'intérieur de ce script.
Jusque là, tout va bien, elle s'affiche sans pb
Sauf que cette page est un script qui affiche des résultats d'une base sur plusieus pages, et quand je veux changer de page (1,2, suiv, préc), je reviens au formulaire de loggin
Faut y faire quoi à ça ?
Parce que je suis loin d'être un pro ... :-(
Merci d'avance :-)
--
Me zo ganet e-kreiz ar mor
Bonjour,
Je viens à ma grande surprise de réussir à faire un formulaire d'identification et afficher une page
Donc, non content de ça, je viens d'essayer d'insérer une page du site à l'intérieur de ce script.
Jusque là, tout va bien, elle s'affiche sans pb
Sauf que cette page est un script qui affiche des résultats d'une base sur plusieus pages, et quand je veux changer de page (1,2, suiv, préc), je reviens au formulaire de loggin
Faut y faire quoi à ça ?
Parce que je suis loin d'être un pro ... :-(
Merci d'avance :-)
--
Me zo ganet e-kreiz ar mor
Configuration: Ubuntu, en principe à jour ;-)
10 réponses
-
Avec les sessions regarde ici -> https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/913348-variables-superglobales#ss_part_2
Une session te permet d'enregistrer des variables sur un utilisateur, qui sont accessibles sur toutes tes pages. PHP associe les sessions à un utilisateur grâce à un cookie ou une variable en GET ce que permet de reconnaître l'utilisateur. C'est hyper pratique. -
Merci pour ta réponse
Comme mon niveau est loin d'être suffisant pour comparer des scripts, je te fais un 'tit copier/coller du mien.
Résumé, mais ça doit suffir pour comprendre
Mais c'est vrai que pour GET, je ne sais pas comment placer ça ... :-(
Que ce soit pour récupérer le loggin ou le . session_id();
Merci ;-)
<?php session_start(); include('config.inc.php'); if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) { extract($_POST); // recupère le pass $sql = "select pwd from aaa_tbl_user where login='".$login."'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req); if($data['pwd'] != $pass) { echo '<font face="Verdana, Arial, Helvetica, sans-serif" size="2">'; echo '<p align="center"><b>Vous n\'êtes pas identifié, donc vous ne pouvez pas télécharger les partitions</b><br>(les liens sont désactivés)<br><b>Merci de ré-essayer</b><br>Ceci dit, vous pouvez toujours y jeter un oeil ;-)</p>'; include('form.php'); AFFICHAGE DE LA PAGE AVEC LES LIENS DESACTIVES @mysql_close(); exit; } else { $_SESSION['login'] = $login; echo 'Vous etes bien logué <b><u>'.$login.'</u></b>'; AFFICHAGE COMPLET DE LA PAGE @mysql_close(); } } else { echo '<p>Vous avez oublié de remplir un champ.</p>'; include('form.php'); // On inclut le formulaire d'identification exit; } ?>
-
Il faut que tu prennes en compte les session dans ta condition :
Pour ta condition on peut être déjà connecté : quand $_SESSION['login'] est différent de null ou vide.
Où tu essaye de te connecté : si les données du formulaire existent.<?php session_start(); include('config.inc.php'); if( (isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) || !empty($_SESSION['login'])) { extract($_POST); // recupère le pass $sql = "select pwd from aaa_tbl_user where login='".$login."'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req); if($data['pwd'] != $pass) { echo '<font face="Verdana, Arial, Helvetica, sans-serif" size="2">'; echo '<p align="center"><b>Vous n\'êtes pas identifié, donc vous ne pouvez pas télécharger les partitions</b><br>(les liens sont désactivés)<br><b>Merci de ré-essayer</b><br>Ceci dit, vous pouvez toujours y jeter un oeil ;-)</p>'; include('form.php'); AFFICHAGE DE LA PAGE AVEC LES LIENS DESACTIVES @mysql_close(); exit; } else { $_SESSION['login'] = $login; echo 'Vous etes bien logué <b><u>'.$login.'</u></b>'; AFFICHAGE COMPLET DE LA PAGE @mysql_close(); } } else { echo '<p>Vous avez oublié de remplir un champ.</p>'; include('form.php'); // On inclut le formulaire d'identification exit; } ?> -
Heu ...
Ca, c'est un bout de script que j'ai trouvé sur phpdebutant ...
Comme j'ai dis, suis une vrai bille, donc quitte à m'enfoncer un peu plus (LOL), pour que on puisse passer d'une page à l'autre (vu qu'on arrive quand meme à une page), il ne faudrait pas mettre un truc du genre<?php session_start(); $login = $_GET['login'];
en début de page ?
Bon, arrétez de vous marrer !!! (re LOL)
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Tu mets :
<?
session_start();
$login=$_SESSION['login'];
?>
J'avais mal compris ta question. -
Pô de pb ;-)
Oui, bon ben j'ai meme rajouté ça :<?php session_start(); $login=$_SESSION['login']; $pass=$_SESSION['pass'];
Mais tjs pareil, j'ai bien la premiere page, et ensuite je me retrouve au loggin :-(
Je sais pô si je peux ici, mais bon, je te donne le lien de ce test, si ça peut aider :
(Loggin : toto, pass : tutu)
Merci :-)
-
Voila comment tu dois modifier ton script :
<?php session_start(); include('config.inc.php'); if( (isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) || !empty($_SESSION['login'])) { if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass']))//L'utilisateur se connecte { extract($_POST); // recupère le pass $sql = "select pwd from aaa_tbl_user where login='".$login."'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req); if($data['pwd'] != $pass) { echo '<font face="Verdana, Arial, Helvetica, sans-serif" size="2">'; echo '<p align="center"><b>Vous n\'êtes pas identifié, donc vous ne pouvez pas télécharger les partitions</b><br>(les liens sont désactivés)<br><b>Merci de ré-essayer</b><br>Ceci dit, vous pouvez toujours y jeter un oeil ;-)</p>'; include('form.php'); AFFICHAGE DE LA PAGE AVEC LES LIENS DESACTIVES @mysql_close(); $_SESSION['login'] = $login;//On finalise la connection, puis on crée un session contenant le login exit; } }//Fin l'utilisateur est connecté else { //l'utilisateur est déjà connecté $login=$_SESSION['login'];//On attribue la session login à la variable login echo 'Vous etes bien logué <b><u>'.$login.'</u></b>'; AFFICHAGE COMPLET DE LA PAGE } } else { echo '<p>Vous avez oublié de remplir un champ.</p>'; include('form.php'); // On inclut le formulaire d'identification exit; } ?>
J'ai modifié pas mal de choses et je pense que c'est bon. Tu as deux cas l'utilisateur se connecte, et l'utilisateur est déjà connecté.
-
Me voici de retour
Suis musicien, je bosse le week-end :-)
Encore merci pour ton aide
Il y a un truc avec ce code ...
La page reste blanche
J'ai essayé de voir si il n'y avait pas un soucis de ; ou de }, mais je ne vois pas
Mais je trouve bizarre, tu as mis " }//Fin l'utilisateur est connecté" à un endroit ou justement il ne l'est pas
Ca ne viendrait pas de ça, une inversion dans le code aussi ?
Merci :-)
-
Bon j'ai fait un test sur mon serveur local avec le script suivant :
session_start(); // include('config.inc.php'); if( (isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) || !empty($_SESSION['login'])) { if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass']))//L'utilisateur se connecte { extract($_POST); // recupère le pass /*$sql = "select pwd from aaa_tbl_user where login='".$login."'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req); if($data['pwd'] != $pass) { echo '<font face="Verdana, Arial, Helvetica, sans-serif" size="2">'; echo '<p align="center"><b>Vous n\'êtes pas identifié, donc vous ne pouvez pas télécharger les partitions</b><br>(les liens sont désactivés)<br><b>Merci de ré-essayer</b><br>Ceci dit, vous pouvez toujours y jeter un oeil ;-)</p>'; include('form.php'); AFFICHAGE DE LA PAGE AVEC LES LIENS DESACTIVES @mysql_close(); $_SESSION['login'] = $login;//On finalise la connection, puis on crée un session contenant le login exit; }*/ $_SESSION['login'] = $_POST['login'];//On finalise la connection, puis on crée un session contenant le login echo "EXE IF 1"; }//Fin l'utilisateur est connecté else { //l'utilisateur est déjà connecté $login=$_SESSION['login'];//On attribue la session login à la variable login echo 'Vous etes bien logué <b><u>'.$login.'</u></b>'; } } else { echo '<p>Vous avez oublié de remplir un champ.</p>'; //include('form.php'); // On inclut le formulaire d'identification exit; }
La condition ou "L'utilisateur se connecte" est bien exécutée quand je transmet les données login et pass en POST.
Ensuite la session est bien créé avec login qui contient bien le login.
Au niveau des conditions tout fonctionne, ainsi que de la création d'une session contenant login.
Sinon, j'ai dù désactiver la requête SQL pour tester et j'ai aussi déplacé $_SESSION['login'] = .
Enfin j'ai écrits "//Fin l'utilisateur est connecté" car quand la condition a finis de s'exécuté l'utilisateur est normalement connecté sauf si le mot de passe ou l'indentifiant étaient faux, j'aurais du mettre ce commentaire à la fin de la condition dù dessus ( if($data['pwd'] != $pass)). -
Mille merci pour ton aide :-)
J'essaie ça dès que retour chez moi
@++