Ameliorer mon code en PHP
mancini
-
kilian Messages postés 8732 Date d'inscription Statut Modérateur Dernière intervention -
kilian Messages postés 8732 Date d'inscription Statut Modérateur Dernière intervention -
salut,
voilà j'aimerai ameliorer mon code en affichant un message box si le mot de passe entré n'est pas bon.
Je l'ai fait mais bon le message s'affiche d'emblée alors qu'on n'a même pas entré un mot de passe.J'ai vraiment perdu mon latin car j'arrive plus à avancer. Je vous donne tout le code en espérant qu'il y aura quelqu'un qui pourra me débloquer. L'intruction en question est délimitée par des étoiles.
Code : Autre
<?php
// J'ai choisi le mot de passe "toto2006"
if (isset($_POST['mot_de_passe'])) // Si la variable existe
{
// On se crée une variable $mot_de_passe avec le mot de passe entré
$mot_de_passe = $_POST['mot_de_passe'];
}
else // La variable n'existe pas encore
{
$mot_de_passe = ""; // On crée une variable $mot_de_passe vide
}
if ($mot_de_passe == "toto2006") // Si le mot de passe est bon
{
// On affiche la page cachée.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>accès au Forum</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<h2>Voici la porte d'accès :</h2>
<hr />
</body>
</html>
<?php
}
/****************voici le code dont je vous parle***********************************************/
if ($mot_de_passe != "toto2006"){// le mot de passe n'est pas bon
print'Veuillez entrer le mot bon de passe';
?>
<form method="post">
<p>
<input type="text" name="mot_de_passe" /> <input type="submit" value="Valider" />
</p>
</form>
<?
}
/*****************fin de if quand le mot de passe n'est pas bon*****************************************/
else
{
// On affiche la zone de texte pour rentrer le mot de passe.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Page protégée par mot de passe</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<p>Veuillez entrer le mot de passe pour avoir accès au Forum :</p>
<form action="friends.php" method="post">
<p>
<input type="text" name="mot_de_passe" /> <input type="submit" value="Valider" />
</p>
</form>
</body>
</html>
<?php
} // Fin du else
// Fin du code :)
?>
merci pour tout aide.
voilà j'aimerai ameliorer mon code en affichant un message box si le mot de passe entré n'est pas bon.
Je l'ai fait mais bon le message s'affiche d'emblée alors qu'on n'a même pas entré un mot de passe.J'ai vraiment perdu mon latin car j'arrive plus à avancer. Je vous donne tout le code en espérant qu'il y aura quelqu'un qui pourra me débloquer. L'intruction en question est délimitée par des étoiles.
Code : Autre
<?php
// J'ai choisi le mot de passe "toto2006"
if (isset($_POST['mot_de_passe'])) // Si la variable existe
{
// On se crée une variable $mot_de_passe avec le mot de passe entré
$mot_de_passe = $_POST['mot_de_passe'];
}
else // La variable n'existe pas encore
{
$mot_de_passe = ""; // On crée une variable $mot_de_passe vide
}
if ($mot_de_passe == "toto2006") // Si le mot de passe est bon
{
// On affiche la page cachée.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>accès au Forum</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<h2>Voici la porte d'accès :</h2>
<hr />
</body>
</html>
<?php
}
/****************voici le code dont je vous parle***********************************************/
if ($mot_de_passe != "toto2006"){// le mot de passe n'est pas bon
print'Veuillez entrer le mot bon de passe';
?>
<form method="post">
<p>
<input type="text" name="mot_de_passe" /> <input type="submit" value="Valider" />
</p>
</form>
<?
}
/*****************fin de if quand le mot de passe n'est pas bon*****************************************/
else
{
// On affiche la zone de texte pour rentrer le mot de passe.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Page protégée par mot de passe</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<p>Veuillez entrer le mot de passe pour avoir accès au Forum :</p>
<form action="friends.php" method="post">
<p>
<input type="text" name="mot_de_passe" /> <input type="submit" value="Valider" />
</p>
</form>
</body>
</html>
<?php
} // Fin du else
// Fin du code :)
?>
merci pour tout aide.
A voir également:
- Ameliorer mon code en PHP
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
3 réponses
le message s'affiche d'emblée alors qu'on n'a même pas entré un mot de passe
Normal. La page est executée une première fois pour afficher le formulaire.
Donc ici, $_POST['mot_de_passe'] n'existe pas, donc $mot_de_passe = "" donc $mot_de_passe != "toto2006" donc c'est comme si le mot de passe n'était pas bon...
Normal. La page est executée une première fois pour afficher le formulaire.
Donc ici, $_POST['mot_de_passe'] n'existe pas, donc $mot_de_passe = "" donc $mot_de_passe != "toto2006" donc c'est comme si le mot de passe n'était pas bon...
Si la variable post n'existe pas encore, donne la valeur NULL à $mot_de_passe pour lui donner une valeur vide au lieu de lui donner la valeur d'une chaine vide, ce qui est différent. Ca évitera l'ambiguité entre mot de passe vide et mot de passe non envoyé.
=> $mot_de_passe = NULL;
Puis au lieu de tester uniquement si $mot_de_passe est différent de toto2006, vérifie aussi qu'il est différent de NULL (mot de passe non envoyé), soit:
=> if ( ($mot_de_passe != "toto2006") && ($mot_de_passe !=NULL) )
=> $mot_de_passe = NULL;
Puis au lieu de tester uniquement si $mot_de_passe est différent de toto2006, vérifie aussi qu'il est différent de NULL (mot de passe non envoyé), soit:
=> if ( ($mot_de_passe != "toto2006") && ($mot_de_passe !=NULL) )