Php , page protégée , formulaire

Fermé
Signaler
-
 Alain42 -
Bonjour , en php j'essaye d'écrire un code qui à partir d'un formulaire récupère la valeur d'une variable et si cette valeur est celle demandée , elle affiche la page web souhaitée sinon elle affiche la page web de départ avec le formulaire, j'ai commencé le code mais il marche pas , j'aurais besoin de vos conseils svp , merci :

<html>
<head>
<title>php</title>
</head>
<body>

<p>Tape le code pirate en herbe</p>

<form action="formu.php" method="post">

<p>
<input type="text" name="code" /> <input type="submit" value="Valid" />
</p>

</form>

<?php

$my_pass ="coucou";

if (isset($_POST['my_pass']))
{
if (my_pass == "coucou")
	{
		echo "page.html";
	}
else
	{
		echo "<a href="formu.php">";
}

?>

</html>

7 réponses


Essaie de remplacer ça

if (isset($_POST['my_pass']))
{
if (my_pass == "coucou")
	{
		echo "page.html";
	}
else
	{
		echo "<a href="formu.php">";
}

Par ça
$code = (isset($_POST['code'])) ? $_POST['code'] : '';

if ($code == $my_pass)
		header('Location: page.html');
0

Ou carrement

<html>
<head>
<title>php</title>
</head>
<body>

<?php

$my_pass ="coucou";

if (isset($_POST['code']))
{
   $code = ($_POST['code'] == $my_pass) ? true : false;
     if ($code)
          header('Location: page.html');
}

?>

<p>Tape le code pirate en herbe</p>

<form action="formu.php" method="post">

<p>
<input type="text" name="code" /> <input type="submit" value="Valid" />
</p>

</form>

</body>
</html>
0
non je dois garder le code de départ c'est un exercice de débutant toi tu me le compliques
0
Acceptes qd même de corriger tes erreurs:

if (isset($_POST['my_pass']))

Ce n'est pas le champ nommé "my_pass" qui est posté par ton formulaire mais "code"

alors
if (isset($_POST['code']))

{
if ($_POST['code'] == "coucou")
{
echo "page.html"; // ce n'est pas echo qui va afficher ta page,il écrira seulement "page.html"

il faut mettre header('Location: page.html');
}
else
{
echo "<a href="formu.php">"; // pareil
la tu mets echo "<a href="formu.php">nom_lien</a>";
}
}

?>
0
alain je regrette je suis pas d'accord "Acceptes qd même de corriger tes erreurs:

if (isset($_POST['my_pass']))

Ce n'est pas le champ nommé "my_pass" qui est posté par ton formulaire mais "code" "

non non , $_POST[ ] c'est une variable et entre crochet on doit metre la variable , rien à voir avec code .
0
Désolé mais je pense connaitre assez bien le php, alors $_POST est un array de tous les champs postés par le formulaire lorsque tu cliques sur le bouton Valid

donc pour lire la valeur de ton champ:

<input type="text" name="code" />

il faut que tu fasses valeur_champ_code=$_POST['code']
et après tu fais les tests que tu veux dessus

tiens essaye de mettre print_r($_POST) tu verras ce que te renvoie le formulaire
0
j'ai une erreur de compilation sur cette ligne :

	echo "<a href="kouk.html">yo</a>";


Parse error: parse error, expecting `','' or `';''

je ne comprends pas...
0

echo '<a href="kouk.html">yo</a>';

c'est mieux
0
Ou tu échappes les doubles quotes " par un \ quand elles sont dans une chaine avec des " au début et à la fin

echo "<a href=\"kouk.html\">yo</a>";
0