Accès limité par mot de passe
Posté : 20 août 2020, 13:53
Bonjour à tous,
Je me suis lancé en autodidacte et ai su jusqu'à présent me débrouiller mais là je me retrouve confronté à un mur.
J'ai voulu créer un formulaire demandant de rentrer un mot de passe, que je stocke dans un cookie, afin que les pages à accès restreint aient juste à vérifier si le cookie contient bien le bon mot de passe (et éviter à l'utilisateur de rentrer le mot de passe à chaque page). Ce que j'ai fait marchait très bien en local, sur Wampserver, mais quand je suis passé sur serveur là ça ne marche plus. D'où peut venir cette erreur ???
Stockage du mot de passe quand l'utilisateur clique sur envoyer :
Et vérification sur l'autre page si le cookie contient bien le mot de passe :
Message d'erreur sur la page hébergée quand j'envoie le mot de passe :
Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/38/ec/home/www/Bag'Art - MDP.php:1) in /home/users/00/38/ec/home/www/Bag'Art - MDP.php on line 43
Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/38/ec/home/www/Bag'Art - MDP.php:1) in /home/users/00/38/ec/home/www/Bag'Art - MDP.php on line 48
Je vous remercie grandement par avance
Je me suis lancé en autodidacte et ai su jusqu'à présent me débrouiller mais là je me retrouve confronté à un mur.
J'ai voulu créer un formulaire demandant de rentrer un mot de passe, que je stocke dans un cookie, afin que les pages à accès restreint aient juste à vérifier si le cookie contient bien le bon mot de passe (et éviter à l'utilisateur de rentrer le mot de passe à chaque page). Ce que j'ai fait marchait très bien en local, sur Wampserver, mais quand je suis passé sur serveur là ça ne marche plus. D'où peut venir cette erreur ???
Stockage du mot de passe quand l'utilisateur clique sur envoyer :
if ($_SERVER["REQUEST_METHOD"]=="POST") {
$mot_de_passe = test_input($_POST["mot_de_passe"]);
setcookie("mdp", $mot_de_passe, time() + 3600, "/");
if ($mot_de_passe == "abcd"){
header("Location: Bag'Art - Accueil.php");
}
else{
header("Location: Bag'Art - MDP.php");
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes ($data);
$data = htmlspecialchars($data);
return $data;
}
Formulaire de demande :
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<input type="password" name="mot_de_passe" required placeholder="Renseigner le mot de passe"> <input type="submit" name="Valider" value="Valider">
</form>
Et vérification sur l'autre page si le cookie contient bien le mot de passe :
<?php
if ($_COOKIE["mdp"] == "abcd") {
?>
Message d'erreur sur la page hébergée quand j'envoie le mot de passe :
Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/38/ec/home/www/Bag'Art - MDP.php:1) in /home/users/00/38/ec/home/www/Bag'Art - MDP.php on line 43
Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/38/ec/home/www/Bag'Art - MDP.php:1) in /home/users/00/38/ec/home/www/Bag'Art - MDP.php on line 48
Je vous remercie grandement par avance