Faire suivre session php (affichage par page)
francdrum
Messages postés
853
Date d'inscription
Statut
Membre
Dernière intervention
-
francdrum Messages postés 853 Date d'inscription Statut Membre Dernière intervention -
francdrum Messages postés 853 Date d'inscription Statut Membre Dernière intervention -
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, 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 :-)
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, 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 php (affichage par page)
- Supprimer page word - Guide
- Suivre colis - Guide
- Affichage double ecran - Guide
- Imprimer tableau excel sur une page - Guide
- Windows 11 affichage classique - Guide
6 réponses
Re,
Normalement pour récupérer une session, ou en démarrer une, il faut mettre la commande 'session_start();' avant d'utiliser un objet stocké en session...
Donc normalement, à chaque page qui utilise un objet session tu dois avoir le session_start !...
cf: https://www.php.net/session_start
Etant donné que généralement l'identifiant est stocké dans un cookie, il faut evidement que le navigateur accepte les cookies.... et que ceux-ci ne soit pas supprimer...
Autre indication.. si une session n'est pas récupéré pendant un certain temps (chargement de page, généralement 30 minutes), la session est détruite sur le serveur, et donc la session et ce qu'elle contenait est perdue !
Amicalement,
S@M...
http://kryoportail.ath.cx
Normalement pour récupérer une session, ou en démarrer une, il faut mettre la commande 'session_start();' avant d'utiliser un objet stocké en session...
Donc normalement, à chaque page qui utilise un objet session tu dois avoir le session_start !...
cf: https://www.php.net/session_start
Etant donné que généralement l'identifiant est stocké dans un cookie, il faut evidement que le navigateur accepte les cookies.... et que ceux-ci ne soit pas supprimer...
Autre indication.. si une session n'est pas récupéré pendant un certain temps (chargement de page, généralement 30 minutes), la session est détruite sur le serveur, et donc la session et ce qu'elle contenait est perdue !
Amicalement,
S@M...
http://kryoportail.ath.cx
Merci pour ta réponse :-)
Et pour ce lien qui parait très intéressant, même si je suis (aussi ...) une bille en anglais ^_^
J'ai bien ça, au tout début, en effet
Je donne le début du code, jusqu'au "else", si ça peut aider
Merci :-)
EDIT : Ayant mis des vérifs pour le formulaire, il ne m'affiche pas que je suis pas loggé, mais que j'ai oublié de remplir un champ
Et pour ce lien qui parait très intéressant, même si je suis (aussi ...) une bille en anglais ^_^
J'ai bien ça, au tout début, en effet
Je donne le début du code, jusqu'au "else", si ça peut aider
<?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 (les liens sont désactivés)<br>Merci de ré-essayer</b><br>Ceci dit, vous pouvez toujours y jeter un oeil ;-)</p>'; include('form.php'); exit; } else { $_SESSION['login'] = $login; echo 'Vous etes bien logué <b><u>'.$login.'</u></b>'; etc, etc, etc
Merci :-)
EDIT : Ayant mis des vérifs pour le formulaire, il ne m'affiche pas que je suis pas loggé, mais que j'ai oublié de remplir un champ
Re,
Je pense que tu tais un peu pommé dans les tests...
le principe :
Pour résumer :
1. On teste si l'utilisateur est déjà connecté
2. Si il ne l'est pas et si il a validé le formulaire, il faut tenter de l'authentifier...
2.1 Si l'authentification est réussie, il faut mettre un flag (indicateur, drapeau) en session pour "se rappeler" qu'il est connecté !
3. Dans les autres cas, on affiche un contenu non protégé, ou on affiche, ou on le redirige sur un formulaire d'authentification...
Amicalement,
S@M...
Je pense que tu tais un peu pommé dans les tests...
le principe :
<?php session_start(); if( isset($_SESSION['login']) ) { // L'utilisateur est connecté... on peut afficher un contenu, ou faire une action protégé } elseif( isset($_POST['login']) && isset($_POST['pass']) && !empty($_POST['login']) && !empty($_POST['pass']) ) { // L'utilisateur n'est pas connecté mais il vient de valider le formulaire if( testmotdepassereussi ) { // authentification réussie $_SESSION['login'] = $login // on peut recharger la pageici, pour afficher un contenu protégé, ou rediriger vers une page protégé (attention qui elle meme teste si il a bien été authentifié !!!!)... } else { // authentification échouée } } else { // L'utilisateur n'est pas connecté, on affiche un contenu public et le formulaire d'authentification... } ?>
Pour résumer :
1. On teste si l'utilisateur est déjà connecté
2. Si il ne l'est pas et si il a validé le formulaire, il faut tenter de l'authentifier...
2.1 Si l'authentification est réussie, il faut mettre un flag (indicateur, drapeau) en session pour "se rappeler" qu'il est connecté !
3. Dans les autres cas, on affiche un contenu non protégé, ou on affiche, ou on le redirige sur un formulaire d'authentification...
Amicalement,
S@M...
Merci
C'est un bout de code que j'ai trouvé chez phpdebutant.org
Pourtant ça a l'air sérieux ce site ... :-)
Bon, je vais essayer d'adapter tout ça
Quand je pense que j'avais dans l'idée de me mettre à l'aise avec les sessions, et d'adapter ça pour faire suivre celles de mon forum (simplemachines, enfin SMF) ...
D'après ce que j'ai compris avec eux, il faut faire suivre des choses comme :
Vu mon niveau, je sais pas si je vais continuer dans cette optique :-(
C'est un bout de code que j'ai trouvé chez phpdebutant.org
Pourtant ça a l'air sérieux ce site ... :-)
Bon, je vais essayer d'adapter tout ça
Quand je pense que j'avais dans l'idée de me mettre à l'aise avec les sessions, et d'adapter ça pour faire suivre celles de mon forum (simplemachines, enfin SMF) ...
D'après ce que j'ai compris avec eux, il faut faire suivre des choses comme :
$context['user']['name'], $context['user']['is_logged'], $context|'user']['is_guest']
Vu mon niveau, je sais pas si je vais continuer dans cette optique :-(
Héhé, vi ! ça, suis persévérant ;-)
C'est un affichage de partitions fait avec tout un tas de "bouts" que j'ai arrangés ensembles
Je sais pas si je peux, mais je te donne le lien de mon test :
http://www.web-zik.net/index.php?page=form
Essaie d'abord n'importe quoi comme loggin, et le bon : "toto", pass : "tutu"
Ca c'est avec ce que j'avais mis
Par contre avec ce que tu m'as donné, pour l'instant (snif) rien ne s'affiche
Mais je continue ;-)
C'est un affichage de partitions fait avec tout un tas de "bouts" que j'ai arrangés ensembles
Je sais pas si je peux, mais je te donne le lien de mon test :
http://www.web-zik.net/index.php?page=form
Essaie d'abord n'importe quoi comme loggin, et le bon : "toto", pass : "tutu"
Ca c'est avec ce que j'avais mis
Par contre avec ce que tu m'as donné, pour l'instant (snif) rien ne s'affiche
Mais je continue ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pô de soucis ;-)
Je continue à bosser dessus
Le pb, c'est que je ne sais pas comment faire pour qu'il affiche l'erreur ...
Si ça se trouve, juste un ";"
De toutes façons, il a l'air mieux "rangé". Une fois mis bien, ça doit être plus propre :-)
Je continue à bosser dessus
Le pb, c'est que je ne sais pas comment faire pour qu'il affiche l'erreur ...
Si ça se trouve, juste un ";"
De toutes façons, il a l'air mieux "rangé". Une fois mis bien, ça doit être plus propre :-)