|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Invité de passage
![]() vincent courtois Inscription : janvier 2011 Messages : 2 ![]() |
Tout d'abord bonjour à toutes et à tous.
Voilà je tente actuellement d'améliorer mes compétences en PHP après un apprentissage universitaire plutôt disons ... Incomplet. Sur un ancien projet, j'étais parvenu à créer un mécanisme qui permettait à l'utilisateur de se connecter et qui conservait ses renseignements entre les pages, néanmoins pour le site que je suis en train de créer, ce même mécanisme ne marche pas, je me demande pourquoi. L'architecture de mon site est plutôt simple et commune, en l'occurence pour ce qui nous intéresse ici l'enchainement des pages sera le suivant: le visiteur est sur Vaccueil.php en se connectant il appelle verifInscription.php verifInscription.php est un controleur qui va appeler allUsers.php pour avoir la liste des membres, puis index.php. index.php va appeler Vaccueil.php. Vaccueil.php, comme toutes mes vues, inclue avant toute chose le fichier header.php qui comporte comme toutes première instruction ( avant même le doctype ) un session_start(), puisqu'il faut toujours le mettre en tout premier. Le contexte est fixé, voyons maintenant le problème: 1. Si je ne mets pas de session_start() en tête de verifInscription.php : une catastrophe, aucune session n'est ouverte, aucune variable conservée, le mécanisme ne fonctionne pas une seconde. 2. Si je mets un session_start() en tête de verifInscription.php : c'est pas tellement mieux, il m'avertit que je tente de réouvrir une session déjà ouverte et quand je tente de réafficher Vaccueil.php, la session a miraculeusement disparu ... J'explique plus précisément : Dans ce cas il me connecte correctement, le formulaire de connexion s'efface aau profit d'un echo du pseudo, jusque là tout va bien à part le warning de réouverture de session. Malheureusement quand je réaffiche la page d'accueil avec un print_r de $_SESSION, je me rend compte qu'il est vide et que le formulaire de connexion est revenu, misère ! en annexe, le code des fichiers cités ( racourci je vous rassure ) et le shéma du voyage entre les pages que j'ai expliqué, mais s'toujours plus explicite avec un shéma : index.php Code :
Code :
Code :
Code :
|
||||||||
|
|
00
|
|
|
#2 | |
|
Membre chevronné
![]() Taoufiq BenDéveloppeur Web Inscription : mai 2009 Messages : 456 ![]() |
Dans le verifInscription.php tu mets session_start(); puis tu appele le Vaccueill qui lui meme a une session_start(); dans lheader
Citation:
|
|
|
|
00
|
|
|
#3 | ||
|
Membre actif
![]() Inscription : décembre 2006 Messages : 184 ![]() |
d'ou l'intéret d'utiliser du poo avec le partern singleton
voici un exemple fait à l'arrache du coup on ne se souci plus si le session_start à été effectué dès qu'on récupère MySession ca le fait tout seul ou ca déjà été le cas et ceci une seule fois! Code :
|
||
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() vincent courtois Inscription : janvier 2011 Messages : 2 ![]() |
Bonjour, et merci d'avoir daigné lire tout le gros pavé que j'ai imposé x]
Pour ce qui est du doublon de session_start() j'en suis conscient, mais quand je le retire la connexion ne se fait carrément plus et aucune session n'est ouverte, ni aucune variable de session enregistrée. Je ne l'ai peut-être pas suffisamment explicité mais je cherche une solution pour que je puisse me connecter, que le site retienne mes variables de session et qu'il le propage entre toutes les pages afin que je puisse adapter mon contenu selon elle. Je pensais qu'en mettant un session_start() en haut de mon header, ça le mettrais en haut de chaque page et que donc ça fonctionnerait, néanmoins ça ne fonctionne pas ... Merci pour l'aide éventuelle apportée EDIT: je vais regarder la solution en POO, merci beaucoup =D je reviens très vite dire si ça a marché, ou pas ^^ |
|
|
00
|
|
|
#5 | ||
|
Membre chevronné
![]() Taoufiq BenDéveloppeur Web Inscription : mai 2009 Messages : 456 ![]() |
Redirige la page après le remplissage de la session.
Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre actif
![]() Inscription : décembre 2006 Messages : 184 ![]() |
plop j'ai corrigé un peu mon code ci-dessus
je ne mémorisai pas les données en session et j'initialisai pas le user dans le cas ou on avait fait un setUser() j'ai aussi regardé mon code actuel bon j'utilise que du poo mais dans l'idée j'ai un contrôleur primaire en singleton qui initialise la session c'est le même principe que le code si dessus sauf que c'est pas au même niveau le session_start, bon après faut adapter |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com