Variable en PHP

Résolu/Fermé
otakuu Messages postés 302 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 13 mai 2014 - 8 janv. 2010 à 09:53
otakuu Messages postés 302 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 13 mai 2014 - 8 janv. 2010 à 10:58
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.

6 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
8 janv. 2010 à 10:07
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
otakuu Messages postés 302 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 13 mai 2014 38
8 janv. 2010 à 10:48
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
dragondark Messages postés 465 Date d'inscription samedi 23 février 2008 Statut Membre Dernière intervention 27 avril 2016 157
8 janv. 2010 à 10:53
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
8 janv. 2010 à 10:53
<!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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
otakuu Messages postés 302 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 13 mai 2014 38
8 janv. 2010 à 10:55
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
otakuu Messages postés 302 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 13 mai 2014 38
8 janv. 2010 à 10:58
ah oué desolé pour l'erreur j'ai pas fait attention!
Mille Merci c'est super gentil de m'avoir aider
0