Afficher / Cacher un formulaire de connexion

Eléphanteau du PHP | 28 Messages

25 sept. 2008, 10:51

Bonjour à tous.

Je suis en train de développer un formulaire de connexion et un espace membre en PHP sachant que je débute en PHP...

J'aimerais afficher mon formulaire de connexion sur la page index.php et lorsqu'un membre le rempli correctement avec ses identifiants, que le formulaire disparaisse et laisse place aux options du membre (comme sur le site de skyrock par exemple).

J'ai déjà mis en place tout le processus d'inscription / validation par mail / page de connexion mais il me reste ce problème là que je n'arrive pas à régler :S

Quelle est la meilleure solution d'après vous ?

Merci de votre aide.

Mammouth du PHP | 1353 Messages

25 sept. 2008, 11:23

Bonjour,

Renseigne toi sur les variables de sessions en PHP (voir le site du zéro par exemple)

L'idée est la suivante :

Tu initialises une variable de session $_SESSION["pseudo"] = ""; (il faut faire un session_start() avant)

Lors de la connexion, l'utilisateur s'authentifie et tu verifies les informations. Si elles sont correctes, alors tu rempli ta variable $_SESSION["pseudo"] = $login.

Ensuite tu conditionnes l'affichage de tes pages en fonction de cette variable :
if(empty($_SESSION["pseudo"])) {
//si cette variable est vide cela signifie que l'utilisateur n'est pas loggé
//formulaire de login ou redirection
}

else {
//sinon cela veut dire qu'il est loggé
echo "Bonjour ".$_SESSION["pseudo"]." !!!";
//contenu 
}
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

25 sept. 2008, 11:26

Connais-tu les sessions ?

Le principe (grossier) est le suivant :
- initialisation de $_SESSION['acces'] = false
- saisie des identifiants sur le formulaire d'identification
- si identifiants ok, alors $_SESSION['acces'] = true et redirection vers pages sécurisées
- si identifiants ko, alors $_SESSION['acces'] = false et maintien sur le formulaire d'identification ou redirection vers une page publique

Ne pas oublier, lors de la déconnexion, de réinitialiser $_SESSION['acces'] = false :!:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

25 sept. 2008, 11:27

Joli simultané ! :lol:

Mammouth du PHP | 1353 Messages

25 sept. 2008, 11:29

Joli simultané ! :lol:
:wink:
"Les grands esprits se rencontrent..." (ou alors on a simplement répondu en même temps mais c'est moins flatteur ! :D )
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphanteau du PHP | 28 Messages

25 sept. 2008, 12:40

Merci beaucoup pour vos réponses (simultanées :P) ! Je vais essayer ça et je vous tiens au courant :)

Edit : Petite question bête, comment je fais pour afficher un formulaire HTML dans une condition du type "if" ? Je dois utiliser
if(empty($_SESSION["login"])) {
echo "<form action=\"index.php\" method=\"post\">Login : <input type=\"text\" name=\"login\" value=\"\"></form>"; }
ou bien
if(empty($_SESSION["login"])) {
?><form action="index.php" method="post">Login : <input type="text" name="login" value=""></form><?php }
Edit : c'est bon mon code marche :P Si l'utilisateur rentre les bonnes informations de connexion le formulaire ne s'affiche plus et si il rentre les mauvaises informations il est redirigé sur la même page :)