Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour,
Je vous contacte concernant votre article sur les sessions.
Comme mon site a un espace membre, j'ai suivi cet article (pratiquement à l'identique) pour créer un système de sessions.
Toutefois, je rencontre un souci quant au maintient des valeurs durant la navigation sur le site.
Mon site contient une page index.php.
Cette page contient d'autres pages php en <?php include(''); ?> (par exemple <?php include('member_login.php'); ?>).
Comme c'est uniquement ma page index.php qui est appelée lorsque je clique sur une lien (par exemple index.php?page=xyz), j'ai mis le code session_start(); en tête de la page
Si j'utilise mon formulaire de login et que je clique sur le bouton Connexion, les valeurs sont bien transmises et la page m'affiche que je suis bien logué en tant que membre.
Or, si je clique sur un lien appelant un des articles du site, la session saute (ce qui veut dire que les valeurs ne sont pas gardées dans ma session)
Comment puis-je pallier à ce problème? La fonction session_start() n'est-elle pas censée garder en mémoire les valeurs sans devoir les envoyés via une GET ou un POST ou encore un COOKIE?
Merci d'avance
Hors ligne
Es-tu sûr de passer toujours par index.php (traitement d'un formulaire ?) ?
Es-tu sûr que ton script d'enregistrement des variables de sessions ne s'éxécute pas à chaque rechargement de la page index.php ? (donc si pas d'envoi de login il écrase avec du vide)
Hors ligne
Salut xTG,
Concernant mes liens et mes formulaires, ils font toujours appel à la page index.php (les liens sont toujours en format index.php?p=xyz).
Comme j'ai des includes dans ma page index.php, je n'ai mis session_start() uniquement dans au début cette page (les autres pages n'en ont pas besoin car elles sont incluses dans la page principale).
Comme tu le soulignes, il est possible qu'à chaque chargement de ma page index.php, il efface mes valeurs. Le formulaire de login est en permanence visible sur mon site. Donc à chaque chargement de la page, les champs du formulaire se vident.
Mais franchement, je ne vois pas comment remédier à celle-là...
Une petite idée?
Merci
Hors ligne
un truc comme ceci :
Et dans ton form : index.php?action=login
Bien sûr c'est juste le concept ce script n'est surtout pas à utiliser tel quel... Je ne vérifie rien et ne protège rien. ^^
Hors ligne
J'ajoute la page php que j'ai mis en tête de index.php. Ce sera peut-être plus simple
Pour résumer, si je me logue pas de problème. Par contre, dès que je clique sur un lien qui va recharger la page index.php, les données de la session sont perdues.
Petite question supplémentaire...Suis-je obligé de mettre les valeurs de la session dans chacun de mes lien?
Merci
NdM Alnoss : J'ai édité ton post pour rajouter la balise php (couleur) et virer les ////// qui rendent le code presque invisible tellement tu en mets ^^
Dernière modification par Maximeus (28-05-2010 08:03:45)
Hors ligne
Outre l'édition de ton post, je te conseille de préciser le type de JOIN que tu mets dans tes requêtes :
INNER - LEFT - RIGHT - etc....
Ensuite, ton
N'affiche rien, mais modifie les valeurs stockées dans les sessions par la valeur de $data['email'] ou $data['password']
J'opte plus pour un
P.S : NON, les sessions sont justement là pour éviter de les passer dans l'url !!!!!
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
Salut Alnoss,
Merci pour ton conseil sur les JOIN. Je reverrai ma requête.
Concernant mon code
$data['']; correspond à la valeur dans ma table member_info. C'est vrai que cela peut porter à confusion, mais c'est la même valeur que $_POST['username'];.
J'ai quand même essayé à ta façon, mais le résultat est identique.
J'ai fait un autre test:
1) J'ai créé une nouvelle page index.php avec mon code session ci-dessus et le formulaire de connexion (sans <?php include(''); ?>)
2) Ensuite j'ai créé une page test_session.php indépendante (pas incluse dans index.php)
Lorsque je clique sur le lien qui m'amène à la page test_session.php , les valeurs de ma session sont bien transmises à cette page.
Donc, du moment que j'appelle une page en <?php include(''); ?> dans ma page index.php, cela pose problème...
Dernière modification par Maximeus (28-05-2010 09:00:22)
Hors ligne
Il serait bon alors de regarder tes pages en inclusions.
Des fois il est facile de se planter dans une condition, par exemple :
Le simple oubli d'un "=" rend ce code permanent et écrase la valeur.
Hors ligne
Pages :: 1