Lipton3198
Messages postés11Date d'inscriptionmardi 16 mai 2006StatutMembreDernière intervention19 avril 2017
-
Modifié le 18 avril 2017 à 21:24
jordane45
Messages postés38109Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 mars 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
Messages postés11Date d'inscriptionmardi 16 mai 2006StatutMembreDernière intervention19 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";
}
?>
jordane45
Messages postés38109Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 mars 2024344 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();
Lipton3198
Messages postés11Date d'inscriptionmardi 16 mai 2006StatutMembreDernière intervention19 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é.
jordane45
Messages postés38109Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 mars 2024344
>
Lipton3198
Messages postés11Date d'inscriptionmardi 16 mai 2006StatutMembreDernière intervention19 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();