Page web protégé par mot de passe

Lipton3198 Messages postés 11 Date d'inscription mardi 16 mai 2006 Statut Membre Dernière intervention 19 avril 2017 - Modifié le 18 avril 2017 à 21:24
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 19 avril 2017 à 18:07
Bonjour,
j'ai installé un code pour protection d'une page web. Si je tape rien comme mot de passe et que j'appuie sur la touche "envoyé" la page protégée qui est membrejeannois.php s'affiche quand même en mettant "mot de passe incorrect", alors que je voudrais rester sur la page listeMembre.php Le tout se fait en vérifiant l'ip de la personne.

Merci pour votre aide. Cependant si vous avez un code meilleur que celui-ci, je suis prenante....

Voici les codes....
sur la page listeMembre.php
<?php
include("motPasse/ip.php"); 
$ipvisiteur = $_SERVER['REMOTE_ADDR'];
if ($ip == $ipvisiteur) // On compare l'ip du visiteur ave  celle de l'admin
{ 
echo '<meta http-equiv="refresh" content="0; URL=membrejeannois.php">'; 
} else { 
?>
<form action="membrejeannois.php" method="post">
<center><br><br>
Veuillez entrer votre mot de passe<br>
Mot de Passe: <input type="password" size="20" name="mdp"> <input type="submit">
</center>
</form>
<?php } ?>

Sur la page protégée membrejeannois.php

<?php
ini_set('display_errors','off'); // Pour éviter le undefined mdp 
include("motPasse/ip.php");
$mdp = $_POST['mdp'];
$vraimdp = "membrejeannois"; // Mettez votre mot de passe
$ipvisiteur = $_SERVER['REMOTE_ADDR'];
$fichier = "motPasse/ip.php";
if ($ip == $ipvisiteur) // On compare
{ 
echo 'Bienvenue sur la liste des membres'; // On affiche la page
} else { 
if ($mdp == $vraimdp) // Si l'ip est pas bon, on vérifie le mdp
{
unlink($fichier);
$monfichier = fopen($fichier, 'a+');
fputs($monfichier, '<?php $ip= "'.$ipvisiteur.'"; ?>');
fclose($monfichier); // On a remis la nouvelle ip de l'admin
echo '<meta http-equiv="refresh" content="0; URL=listeMembre.php">'; // On actualise
} else {
echo "Mot de passe incorrect !"; // ip et mdp incorrect
} 
}
?>  


 Lipton3198

3 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
18 avril 2017 à 21:45
Utilise "isset" pour vérifier si la variable est définie :
if(isset($_POST['...' ]))

Ensuite oublie pas le exit() si tu ne veux pas afficher le reste de la page.
0
Lipton3198 Messages postés 11 Date d'inscription mardi 16 mai 2006 Statut Membre Dernière intervention 19 avril 2017
Modifié le 19 avril 2017 à 01:51
Bonjour, j'ai mis le isset comme demandé mais pour le exit, je ne sais pas comment le placer.
voici le nouveau code et ça fait la même chose. Merci de me donner plus de solution.

<?php
if ((isset($_POST['mdp']) && !empty($_POST['mdp'])) ) {

ini_set('display_errors','off'); // Pour éviter le undefined mdp 
include("motPasse/ip.php");
$mdp = $_POST['mdp'];
$vraimdp = "membrejeannois"; // Mettez votre mot de passe
$ipvisiteur = $_SERVER['REMOTE_ADDR'];
$fichier = "motPasse/ip.php";
if ($ip == $ipvisiteur) // On compare
{ 
echo 'Bienvenue sur la liste des membres'; // On affiche la page
} else { 
if ($mdp == $vraimdp) // Si l'ip est pas bon, on vérifie le mdp
{
unlink($fichier);
$monfichier = fopen($fichier, 'a+');
fputs($monfichier, '<?php $ip= "'.$ipvisiteur.'"; ?>');
fclose($monfichier); // On a remis la nouvelle ip de l'admin
echo '<meta http-equiv="refresh" content="0; URL=listeMembre.php">'; // On actualise
} 
}

}
    else{
     echo "Veuilles entrer de nouveau le mot de passe";
    }

?>

EDIT : Ajout des BALISES DE CODE

0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
19 avril 2017 à 02:00
Bonjour

Tu as indiqué :
la page protégée qui est membrejeannois.php s'affiche quand même en mettant "mot de passe incorrect", alors que je voudrais rester sur la page listeMembre.php


Donc.. tu ne peux pas "rester" sur la page listeMembre.php ... par contre ... tu peux y "retourner".

Au passage ... !empty fait déjà le isset ... pas besoin de mettre les deux !

bref...

le code de ta page membrejeannois.php devrait ressembler à ça :

<?php
//Affichage des erreurs php
error_reporting(E_ALL);
ini_set('display_errors','on'); 

//récupération PROPRE des variables AVANT de les utiliser
// on utilise l'écriture TERNAIRE
$mdp = !empty($_POST['mdp']) ? $_POST['mdp'] : NULL;
$ipvisiteur = !empty($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : NULL;

//Autres variables
$vraimdp = "membrejeannois"; // Mettez votre mot de passe
$fichier = "motPasse/ip.php";

//Début du traitement ....
if($mdp){
  require_once $fichier;

  if ($ip == $ipvisiteur) { 
    echo 'Bienvenue sur la liste des membres'; // On affiche la page
  }else{ 
     // Si l'ip est pas bon, on vérifie le mdp
    if ($mdp == $vraimdp){
      unlink($fichier);
      $monfichier = fopen($fichier, 'a+');
      fputs($monfichier, '<?php $ip= "'.$ipvisiteur.'"; ?>');
      fclose($monfichier); // On a remis la nouvelle ip de l'admin
    } 
  }
}

 //redirection vers listeMembre.php
 header('location : listeMembre.php');
 exit();

0
Lipton3198 Messages postés 11 Date d'inscription mardi 16 mai 2006 Statut Membre Dernière intervention 19 avril 2017
19 avril 2017 à 15:25
Merci Jordane pour la réponse. J'ai essayé le code mais ça ne fonctionne pas. Dans ton message précédent tu mentionnes qu'il faut mettre un isset et dans le dernier message il n'y en a pas.

L'aurais-tu oublié par hasard ? Si tu veux continuer à m'aider, ça serait grandement apprécié.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344 > Lipton3198 Messages postés 11 Date d'inscription mardi 16 mai 2006 Statut Membre Dernière intervention 19 avril 2017
19 avril 2017 à 18:07
Quel message précédent ?
Ce n'était pas moi mais nhenry...
Ensuite.. si tu avais réellement lu ma réponse .. tu aurai pu y voir :
Au passage ... !empty fait déjà le isset


Puis.. tu dis que ça ne marche pas ... c'est à dire ?
Il y a des messages ? Quel comportement observes tu ?


Sachant que, le temps des tests, il serait préférable de mettre en 'commentaires' la redirection :

 //redirection vers listeMembre.php
 //  header('location : listeMembre.php');
 exit();

0
Rejoignez-nous