Php , page protégée , formulaire

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

  1. 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...
    1. echo '<a href="kouk.html">yo</a>';

      c'est mieux
    2. 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>";
  2. 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
    1. 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 .
      1. 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>";
        }
        }

        ?>
        1. non je dois garder le code de départ c'est un exercice de débutant toi tu me le compliques
          1. 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>
            1. 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');