Bonjour à tous,
Voici mon soucis : Je souhaite créer un espace administrateur sur mon site. J'ai donc créé une page (index.php) contenant un formulaire de connexion. Si les identifiants sont dans la base de données, la validation redirige vers une page appelée home.php. Jusque là tout va bien. Sauf que maintenant il faut que je sécurise l’accès à ma page home.php sinon on peut y accéder sans le connecter en tapant son url directement. Voici mon code :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <form class="connexion" action="" method="post"> <h2>Connexion à l'espace admin</h2> <input type="text" name="pseudo" palceholder="Login" autocomplete="off"/> <input type="password" name="mot_de_passe" palceholder="Pass" autocomplete="off"/> <input class="boutonconnexion"type="submit" name="connexion" value="Connexion" /> </form>
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <?php // Durée de vie de la session (Time To Live) $ttl = 10; session_set_cookie_params($ttl); //session.gc_maxlifetime(1800); 30 minutes session_start(); if(isset($_POST['connexion'])) { if(empty($_POST['pseudo'])) { echo "Le champ Pseudo est vide."; } else { if(empty($_POST['mot_de_passe'])) { echo "Le champ Mot de passe est vide."; } else { $Pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES, "ISO-8859-1"); $MotDePasse = htmlentities($_POST['mot_de_passe'], ENT_QUOTES, "ISO-8859-1"); $mysqli = mysqli_connect("localhost", "root", "", "medrano2017"); if(!$mysqli){ echo "Erreur de connexion à la base de données."; } else { $Requete = mysqli_query($mysqli,"SELECT * FROM admin WHERE login_admin = '".$Pseudo."' AND pass_admin = '".$MotDePasse."'"); if(mysqli_num_rows($Requete) == 0) { echo 'Le pseudo et/ou le mot de passe est incorrect'; } else { $_SESSION['pseudo'] = $Pseudo; header('Location: home.php'); } } } } } ?>
Et voici le bout de code que j'utilise pour vérifier la session :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?php if (!$_SESSION['pseudo']) { header('Location: index.php'); } ?>
Sauf que ça me redirige tout le temps vers l'index. Quand j'enlève ce bout de code, la connexion s'effectue et la redirection aussi. Je ne comprends pas...
Merci à tous pour votre aide !
Partager