Page protégée par mot de passe

Petit nouveau ! | 4 Messages

09 mai 2016, 13:09

Bonjour à tous,

J'ai un soucis avec ma page que je veux protéger par mot de passe. Quand je teste ma page sécurisée, celle ci s'affiche même si le mot de passe est erroné.

Voici le code sur ma page (accesformation.php) où se trouve la demande de mot de passe pour accéder à ma page formation.php :

<form action="formation.php" method="post">
<p>
<input type="password" name="mot_de_passe" />
<input type="submit" value="Valider" />
</p>
</form>

Voici le code sur ma page formation.php :

<?php
if (isset($_POST['mot_de_passe']) AND $_POST['mot_de_passe'] == "alien83")
{
?>
<?php
}
else
{
echo '<p>Mot de passe incorrect</p>';
}
?>


Il doit forcément y avoir un oubli !
Ça 2 jours que je cherche, en vain. :(

Merci pour vos réponses :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

09 mai 2016, 14:14

Bonjour,

Pour débuguer efficacement, je te conseille de vider complètement ta page formation.php pour en conserver qu'un if else le + basique possible :
<?php
if (isset($_POST['mot_de_passe']) AND $_POST['mot_de_passe'] == "alien83") {
	die('Mot de passe correct');
} else {
	die('Mot de passe incorrect !');
}
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 4 Messages

09 mai 2016, 16:39

Merci pour ta réponse mais ça ne change rien, même sans rien mettre sur ma page, avec un mot de passe bidon, on arrive quand même sur la page formation.php

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

09 mai 2016, 16:42

Si tu remplaces le code de ta page formation.php par celui que je t'ai donné :
- quel message est affiché quand tu rentres le bon mot de passe ?
- quel message est affiché quand tu rentres un mauvais mot de passe ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 4 Messages

09 mai 2016, 17:13

Avec le bon mot de passe : Mot de passe correct
Avec un mauvais mot de passe : Mot de passe incorrect

Dans les 2 cas, j'accède à ma page formation.php

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

09 mai 2016, 17:53

C'est normal que tu soit sur la page formation.php vu que c'est sur celle-ci que tu fais la vérification pour savoir si le mot de passe est correct ou incorrect.

En revanche, en fonction du résultat de ta vérification tu dois afficher un message d'erreur (si le mdp est incorrect) ou le contenu de ta page formation (si le mdp est correct)
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 4 Messages

10 mai 2016, 07:10

Merci de ton soutien

Alors quel code dois je mettre pour accéder à la page formation.php seulement si le mot de passe est bon ?

Mammouth du PHP | 1967 Messages

10 mai 2016, 08:33

Tu devrais utiliser une redirection php si le mot de passe est incorrect

header("location:mapage.php");
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

12 mai 2016, 16:41

Bonjour,

Tout dépend de l'organisation que tu souhaites mettre en place.

Si tu veux que ta page "accesformation.php" propose le formulaire, fasse le contrôle de validité et redirige vers ta page formation, il te faut changer l'attribut "action" de ton formulaire pour que les données soient renvoyées à la page "accesformation.php", et comme suggéré par Spols, faire une redirection vers la page formation.php en cas de succès (et en cas d'erreur tu reste sur la page de login)
A noter que dans ce cas il est recommandé d'avoir également un contrôle sur la page formation.php pour éviter qu'on puisse y accéder sans être passé par l'authentification au préalable (contrôle d'une variable en session, cookie ou autre :))

Si ton code de contrôle est sur la page formation.php, pas de modification à faire sur ton formulaire, en revanche, dans ta page formation.php il faut contrôler les identifiants et mot de passe spécifier et afficher un message d'erreur ou renvoyer l'utilisateur vers la page "accesformation.php" en cas d'erreur.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...