[RESOLU] probablement de vérification entre un mot de passe et un cookie qui retourne toujours valide

Dzavatar
Invité n'ayant pas de compte PHPfrance

15 août 2015, 16:00

Bonjour à tous , je viens vers vous car j'essaie de trouver mon erreur depuis de longue heure maintenant sans trouver la moindre explication.

J'essaie de protéger une catégorie du site avec la demande d'un mdp.
J'ai 5 catégories ( 1,2,3,4,5), ce sont des albums photos.
j'ai commencer la page par tester si il y avait ou non l'envois d'un $_POST et si celui-ci contient le bon mdp il crée un cookie.
Ensuite je test à savoir si je suis ou non dans la catégorie à protéger, Je fait le test que si il n'existe pas de cookie ou si la valeur de celui-ci est autre que 'ok' j'affiche le formulaire sinon il affiche la page caché.
ou au final si ce n'est pas la categorie 5 , j'affiche normalement les autres contenue.

Ici la réaction est que quelque sois le mot de passe entrée , bon ou mauvais , un refresh suffit pour qu'il considèreque le cookies est 'ok' ...

Code : Tout sélectionner

<?php if(isset($_POST["mot_de_passe"])){ $pass=$_POST["mot_de_passe"]; if($pass="Vision"){ setcookie('uninstant', 'ok', (time() + 3600)); } } if($_GET['souscat']=='5'){ if(!isset($_COOKIE['uninstant']) || $_COOKIE['uninstant']!='ok'){ echo ' <div id="corps"> <p>Veuillez vous identifier pour accéder aux albums de cette catégorie :</p></br> <form action="" method="post"> <p>mot de passe : <input type="password" name="mot_de_passe"/><input type="submit" value="Valider" class="mdp" style="width:60px;color:#fff;"/></p> </form> </br> <p>Si vous ne posedez pas le mot de passe vous pouvez en faire la demande par le formulaire de contact </p> </div> '; }else{ echo'c\'est bon'; } }else{ echo $_GET['souscat']; } ?>



Je vous remercie d'avance pour votre aide :)

Mammouth du PHP | 2703 Messages

15 août 2015, 16:10

if($pass=="Vision"){

Dzavatar
Invité n'ayant pas de compte PHPfrance

15 août 2015, 16:20

Merci pour cette bête erreur :(
il y a donc un léger changement , il semble maintenant effectivement qu'il fasse une différence entre un bon ou un mauvais mdp , par contre lors de l'envois du mdp "Vision" il ne sois pris en compte qu’après un refresh.

le formulaire apparais à nouveau et meme si celui-ci est vide lors de l'envois , il trouve effectivement le cookie crée juste avant et passe a la partie 'c'est bon' .

Pourtant c'est le test qui est fait juste avant à savoir si il est la ou pas ... ????

Dzavatar
Invité n'ayant pas de compte PHPfrance

15 août 2015, 17:03

J'ai fini par trouver une astuce ; j'ai simplement ajouter

setcookie('uninstant', 'ok', (time() + 3600));
header('Location: Album-5');