Sécurisé ma page

Résolu/Fermé
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 - 8 mars 2022 à 09:15
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 - 8 mars 2022 à 11:39
Bonjour,

J'aimerais renvoyé l'utilisateur sur ma page connection grâce à une sécurité mais elle ne fonctionne pas, voici mon code :

<?php
session_start();

if(isset($_POST['valider'])){
    if(!empty($_POST['pseudo']) AND !empty($_POST['mdp'])){
        $pseudo_par_defaut = "admin";
        $mdp_par_defaut = "admin1234";

        $pseudo_saisi = htmlspecialchars($_POST['pseudo']);
        $mdp_saisi = htmlspecialchars($_POST['mdp']);

        if($pseudo_saisi == $pseudo_par_defaut AND $mdp_saisi == $mdp_par_defaut) {
            
            $_SESSION['mdp'] = $mdp_saisi;
            header('Location: ./index.php');
        } else {
            echo "votre mdp ou votre pseudo est incorecte";
        }
    } else {
        echo "veuiller completer tous les champs...";
    }
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form method="POST" align="center">
        <input type="text" name="pseudo" autocomplete="off">
        <input type="password" name="mdp">
        <input type="submit" name="valider">
    </form>
</body>
</html>


voila ma session de connection, et voila une autre page que j'aimerai sécurisé :

<?php
session_start();
if(!$_SESSION['mdp']){
    header('Location: connection.php');
}

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <a href="produits.php">Afficher tout les membres</a>
</body>
</html>


seulement quand je rentre mon url en localhost cela ne me redirige pas ver ma page connection est-ce parceque je suis en localhost ? ou alors mon problème est ailleurs ?

Configuration: Windows / Chrome 98.0.4758.102

3 réponses

yg_be Messages postés 23412 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 décembre 2024 Ambassadeur 1 557
8 mars 2022 à 09:55
bonjour,
si j'étais toi, j'utiliserais isset() pour faire le test en ligne 3 de l'autre page.
1
jordane45 Messages postés 38361 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 décembre 2024 4 720
8 mars 2022 à 10:09
Bonjour,

Plusieurs choses à voir dans ton code...

Déjà .. la fonction htmlspecialchars ne doit être utilisée que pour de l' affichage ..... pas pour "protéger" une quelconque variable..

Ensuite.. je te conseille fortement de toujours récupérer les variables "proprement" AVANT de les utiliser.
Par exemple , en utilisant l'écriture ternaire:

$sMdp = !empty($_SESSION['mdp']) ? $_SESSION['mdp'] : NULL;  

if(!$sMdp ){
   header('Location: connection.php');
   exit; // Toujours mettre un exit après une redirection via header.
}


Bien entendu.. si tu n'es pas redirigé . c'est peut-être aussi que tu as déjà cette variable de renseignée en session suite à de précédents tests .....
Pour le voir, il te suffirait de faire un var_dump($_SESSION); au début de ton code pour voir ce qu'elle contient...


1
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
8 mars 2022 à 11:39
Du coup c'est bon j'ai réussi il suffisait de mettre un "sessiondestroy()" dans ma deuxième page !
0