par
hunomina972 » 01 déc. 2014, 21:08
Bonjours

Alors tu a ton message d'erreur qui s'affiche car comme le prévoie ton code, le mot de passe, enregistrer dans la session n'est pas bon lorsque tu arrive sur la page que tu veut visiter alors qu'il est bon quand tu envoie le formulaire...
C'est logique

Regarde ton code, tu dis que tu include ta page protected.php a toute tes pages. Donc a chaque fois que tu va sur une page, le code est exécuter... LOGIQUE. Donc si tu vient d'une page autre que ta page formulaire, tu n'auras pas poster de mot de passe donc ton code va executer le 'else' et du coup le mot de passe que tu a entrer en te connectant et que tu as enregistrer dans la $_SESSION['mot_de_passe'] va etre modifier vu que c'est ce que le code prevoie et du coup tu ne pourra pas accéder a la page et le message d'erreur sera affiché

Donc la solution serait déjà d'enlever tout les include de toute tes pages, ensuite que lorsque tu envoie le formulaire, cela te redirige vers la page protected.php, que le code soit executé et que donc ça verifie le mot de passe et tout et qu'a la fin de cette page tu fasse une redirection vers la page suivante. Du coup lorsque tu arrivera sur la page suivante, la $_SESSION vaudra le mot de passe que tu as entré dès le depart et il restera comme ça durant toute la navigation. ENSUITE comme tu veut restreindre les autre pages a ceux qui connaissent le mot de passe et bin tu construie tes page à partir de ce code :
<?php
session_start();
if($_SESSION['mot_de_passe']='la valeur que tu veut') {
// alors affiche le site
}
else {
// affiche le message d'erreur
}
?>
Et donc ça verifiera si le mot de passe envoyé tout au debut (stocké dans la session lors de l'envoie du formulaire) est celui voulu et si c'est le cas et bien cela affiche la page
