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

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

                  c'est mieux
                  0
                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>";
                  0