Bonjour,
Tu ne me gonfle pas. Si j'ai un peu de temps, je t'aide c'est tout

.
Je vais t'expliquer comment fonctionne les sessions.
Une session est gérée côté serveur, l'utilisateur ne peut pas modifier les données d'une session.
Elle démarre avec session_start(); qui doit se trouver n'importe où dans toutes les pages qui utiliseront les sessions mais avant une sortie texte (genre un echo.. ou <!DOCTYPE html>). C'est pour cela qu'on le place souvent en début de page.
Si tu utilises session_start(); sur une page, une super variable (c'est comme cela qu'on l'appelle) $_SESSION est créée et se comporte comme un tableau. Elle se transmets de page en page qui ont session_start();. Tu peux ajouter à cette super variable des clefs numériques, associatives. (ex. $_SESSION["motDePasseVerifie"]). Là où cela devient sympa, c'est que, comme cette super variable est disponible sur toutes les pages où session_start(); est placé, si tu modifies la variable dans une page, elle est aussi modifiée dans les autres.
Dans ton cas, nous allons vérifier si le mot de passe est correct et s'il l'est, un valide via une variable de session ($_SESSION["motDePasseVerifie"] = true; dans l'exemple ci dessous).
Ensuite, il te reste à vérifier si $_SESSION["motDePasseVerifie"] est bien "true" sur toute les autres pages. Si oui, l'utilisateur a validé le mot de passe, sinon non !
<?php
ini_set('session.use_trans_sid', "0");
ini_set('session.use_cookies', "1");
ini_set('session.use_only_cookies', "1");
session_start(); //démarrage de session
session_regenerate_id(); //régénération de l'id de session pour la sécurité
//fonction pour la vérification du mot de passe oublié lors du dernier code
function sha256($string = false) {
return (!is_string($string) or empty($string)) ? false : hash('sha256',$string);
}
if (!isset($_SESSION["motDePasseVerifie"]))
$_SESSION["motDePasseVerifie"] = false;
if (!empty($_POST)) {
$motDePasseVerifie = sha256('coucoulemotdepasse123');
$messageRetour = false;
if (empty(trim($_POST["password"]))) {
$messageRetour = "Le mot de passe ne peut être vide";
}
elseif (sha256($_POST["password"]) == $motDePasseVerifie) {
$messageRetour = "Le mot de passe n'est pas le bon !";
}
else
$_SESSION["motDePasseVerifie"] = true;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>HTML5 Login</title>
<link rel="stylesheet" href="normalize.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<section class="loginform cf">
<?php
if (empty($_SESSION["motDePasseVerifie"])) {
?>
<form name="login" action="<?php echo $_POST["PHP_SELF"]; ?>" method="post" accept-charset="utf-8">
<ul>
<li>
<label for="password">Password</label>
<input type="password" name="password" placeholder="password" required />
</li>
<li>
<input type="submit" value="Login" />
</li>
<?php
if (!empty($messageRetour)) {
?>
<p><?php echo $messageRetour; ?></p>
<?php
}
?>
</ul>
</form>
<?php
}
else {
?>
<p>Vous êtes maintenant connecté</p>
<p>
<a href="lien.php">lien</a>
<?php
}
?>
</section>
</body>
</html>
Sur les autres pages (ex. lien.php) :
<?php
ini_set('session.use_trans_sid', "0");
ini_set('session.use_cookies', "1");
ini_set('session.use_only_cookies', "1");
session_start(); //démarrage de session
session_regenerate_id(); //régénération de l'id de session pour la sécurité
if (empty($_SESSION["motDePasseVerifie"])) {
// pas utilisateurs
echo 'Vous n'êtes aps autorisé à consulter cette page ! ';
exit;
}
else {
//utilisateurs
echo 'bonjour utilisateurs';
echo 'les variables de sessions sont : <pre>'.print_r($_SESSION).'</pre>';
}
?>