Page web protégé par mot de passe

Lipton3198 11 Messages postés mardi 16 mai 2006Date d'inscription 19 avril 2017 Dernière intervention - 18 avril 2017 à 21:19 - Dernière réponse : jordane45 19496 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 31 décembre 2017 Dernière intervention
- 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
Afficher la suite 

5 réponses

Répondre au sujet
NHenry 14018 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 30 décembre 2017 Dernière intervention - 18 avril 2017 à 21:45
0
Utile
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.
Commenter la réponse de NHenry
Lipton3198 11 Messages postés mardi 16 mai 2006Date d'inscription 19 avril 2017 Dernière intervention - Modifié par jordane45 le 19/04/2017 à 01:51
0
Utile
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

Commenter la réponse de Lipton3198
jordane45 19496 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 31 décembre 2017 Dernière intervention - 19 avril 2017 à 02:00
0
Utile
2
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();

Lipton3198 11 Messages postés mardi 16 mai 2006Date d'inscription 19 avril 2017 Dernière intervention - 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é.
jordane45 19496 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 31 décembre 2017 Dernière intervention > Lipton3198 11 Messages postés mardi 16 mai 2006Date d'inscription 19 avril 2017 Dernière intervention - 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();

Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.