Variable en PHP

Résolu
Bonjour,

voila mon code :

<!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>Mini chat</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>

<?php
echo $_POST['pseudo'];

?>

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

<p>
Pseudo : <input type="text" name="pseudo" /><br />
Message : <input type="text" name="message" /><br />

<input type="submit" value="Envoyer" />
</p>

</form>

</body>
</html>

je ne comprend pas pour quoi sa me fait une erreur qui me dit qu'elle connait pas "pseudo".
sa doit etre un truc bete mais sa fait deja un moment que je me casse la tete dessus et sa donne rien.
merci de me voir l'erreur si vous y parvenez.
Configuration: Windows XP
Safari 532.0

6 réponses

  1. ah oué desolé pour l'erreur j'ai pas fait attention!
    Mille Merci c'est super gentil de m'avoir aider
    0
    1. oups finalement y'a quelque chose qui s'affiche mais dans la barre d'adresse comme suit :
      http://localhost/minichat/minichat.php?pseudo=hello+world
      mais ... euh ... pour quoi il s'affiche la alors que je le voulais dans la page web?
      0
      1. <!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>Mini-chat</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        </head>
        <style type="text/css">
        form
        {
        text-align:center;
        }
        </style>
        <body>
        
        <?php
        
        $pseudo=isset( $_POST['pseudo']) ? ($_POST['pseudo']) : "";
        echo $pseudo;
        
        ?>
        
        
        
        <form name="form1" action="minichat.php" method="get"> tu utilises la methode GET et tu recupères en POST !!
        
        <p>
        Pseudo : <input type="text" name="pseudo"  value="<?php echo $pseudo; ?>" /><br />
        regardes ce que je t'ai mis dans l'exemple il faut value="..." et dans la balise <inpu     />, pas en dehors
        
        <input type="submit" value="Envoyer" />
        </p>
        
        </form>
        
        </body>
        </html>
        0
        1. change la methode en post

          <form name="form1" action="minichat.php" method="post">


          ou le test en get

          $pseudo=isset( $_GET['pseudo']) ? ($_GET['pseudo']) : ""; 


          Cordialement
          Dragondark de lonlindil
          0
          1. merci pour votre réponse
            là j'ai plus d'erreur mais le message que j'ecris ne s'affiche pas.

            code :

            <!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>Mini-chat</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            </head>
            <style type="text/css">
            form
            {
            text-align:center;
            }
            </style>
            <body>

            <?php

            $pseudo=isset( $_POST['pseudo']) ? ($_POST['pseudo']) : "";

            ?>

            <form name="form1" action="minichat.php" method="get">

            <p>
            Pseudo : <input type="text" name="pseudo" /> <?php echo $pseudo?> <br />

            <input type="submit" value="Envoyer" />
            </p>

            </form>

            </body>
            </html>
            0
            1. il faut tester si elle existe avant

              
              <?php
              if(isset($_POST['pseudo'])) { echo $_POST['pseudo']; }
              
              ?> 
              


              tiens en passant un truc pour que la valeur reste affichée dans ton formulaire aprsènle rechargement de la page:

              <?php
              // la même chose mais en méthode ternaire et qui donne une valeur par defaut = a vide pour le premier chargement de la page
              //ça se lit : si la variable $_POST['pseudo'] existe, alors $pseudo=$_POST['pseudo'] sinon : $pseudo= vide
              $pseudo=isset( $_POST['pseudo']) ? $_POST['pseudo']) : "";
              $message=isset( $_POST['message']) ? $_POST['message']) : "";
              ?>
              
              <form name="form1" action="minichat.php" method="post">
              
              <p>
              Pseudo : <input type="text" name="pseudo"  value="<?php echo $pseudo; ?> /><br />
              Message : <input type="text" name="message"  value="<?php echo $message; ?> /><br />
              
              <input type="submit" name="envoyer" value="Envoyer" />
              </p>
              
              </form>
              
              
              </body>
              </html> 
              
              


              remarque, dans les balises <form, input etc.... prend l'habitude de mettre tous les arguments
              1