Php , page protégée , formulaire

loic -  
 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

  1. Utilisateur anonyme
     
    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
  2. Utilisateur anonyme
     
    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
  3. loic
     
    non je dois garder le code de départ c'est un exercice de débutant toi tu me le compliques
    0
  4. Alain42
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. loic
     
    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
  7. Alain42
     
    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
  8. loic
     
    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. Courageux anonyme
       
      echo '<a href="kouk.html">yo</a>';

      c'est mieux
      0
    2. Alain42
       
      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