Faire suivre session dans affichage par page
francdrum
Messages postés
874
Statut
Membre
-
francdrum Messages postés 874 Statut Membre -
francdrum Messages postés 874 Statut Membre -
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 :-)
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 :-)
A voir également:
- Faire suivre session dans affichage par page
- Supprimer une page dans word - Guide
- Suivre colis - Guide
- Affichage double ecran - Guide
- Page d'accueil - Guide
- Imprimer tableau excel sur une page - Guide
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.
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 ;-)
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.
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
en début de page ?
Bon, arrétez de vous marrer !!! (re LOL)
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
Pô de pb ;-)
Oui, bon ben j'ai meme rajouté ça :
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 :-)
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 :
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é.
<?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 :-)
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 :
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)).
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)).