Pb de condition avec <textarea>

Suivre ce topic
Ce topic est suivi par : Personne...
canyon38

canyon38 Le 31 août 2016 à 22:27 (Édité le 25 janvier 2019 à 17:52)

Bonjour,

Je débute en php et je tente de tester une condition simple avec la balise <textarea>.
Le problème est que je n'arrive pas à rentrer dans la condition 'Merci de remplir tous les champs' alors que le champs est vide.
Cela doit être encore un truc tout bête que je ne vois pas...
Merci pour votre aide

Voici mon code:


<!DOCTYPE html>
<html>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
	if (empty($_POST["message"])){
	echo 'Merci de remplir tous les champs';	
	}else{
	echo 'Bien envoyé!!';
	}
}
?><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body>
</br></br><?php
print_r($_POST);
?></br></br>
<form method="POST" action="">
<textarea  name="message"  rows="10" cols="40">    </textarea>
<input type="submit"  value="VALIDER"/>
</form>

</body>
</html>
 




Arthel

Arthel Le 1 septembre 2016 à 09:49

Hey!

Comme tu l'as dit c'est tous simple: tu replace $_SERVER["REQUEST_METHOD"] == " POST" par $_POST:

<!DOCTYPE html>
<html>
   <?php
   if (isset($_POST)) {
      if (empty($_POST["message"])){
      echo 'Merci de remplir tous les champs';   
      }else{
      echo 'Bien envoyé!!';
      }
   }
   ?><head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   </head>
   <body>
      </br></br><?php
      print_r($_POST);
      ?></br></br>
      <form method="POST" action="">
         <textarea  name="message"  rows="10" cols="40">    </textarea>
         <input type="submit"  value="VALIDER"/>
      </form>
   </body>
</html>
TheOldNoob

TheOldNoob Le 1 septembre 2016 à 09:57

Salut l'ami,

C'est normal, tu a 4 espace qui servent a rien dans ton code entre
<textarea  name="message"  rows="10" cols="40">
et
</textarea>
Donc quand tu arrive sur la page, dans le textarea il y a dejà 4 espace, donc n'est pas vide...

Je t'invite a regarder comment faire plus de condition pour la vérification de formulaire, car là c'est pas du tout sécurisé.

Tu utilise 'empty' c'est le minimum syndical, je t'invite a découvrir aussi 'isset' puis 'htmlspecialchars' que beaucoup utilise sur se forum, mais aussi et surtout 'strlen' ou, le must a mon sens, les preg_match !
Profil introuvable

Profil introuvable Le 1 septembre 2016 à 11:33

Voici le code qu'il faut pour sécuriser un formulaire en php :
<?php
   if (isset($_POST['submit'])) { # Je vérifie si l'utilisateur à envoyer le formulaire 
      if (!empty($_POST['myTextarea'])){
         $msg = htmlspecialchars($_POST['myTextarea']; # Je bloque les caractères spéciaux comme le '<'
      } else {
            $erreur = "Vous devez remplir 'myTextarea' avant de valider";
      }
   }
?>
<form method="POST">
   <textarea name="myTextarea" rows="10" cols="40"></textarea> # Il ne faut pas mettre d'espace entre la balise ouvrante et fermante
   <input type="submit" value="Valider" name="submit" />
</form>
<?php
   if (isset($erreur)) {
      echo "<font color='red'>";
      echo $erreur; # J'affiche les éventuelles erreurs en rouge sous le formulaire
      echo "</font>";
   }
?>
canyon38

canyon38 Le 1 septembre 2016 à 19:26

Merci les gars!!!
Je regarde tout ça
A++
Balatharas

Balatharas Le 1 septembre 2016 à 20:23

Juste @Z_Fire ^^ on peut raccourcir ceci:
echo "<font color='red'>";
echo $erreur;
echo "</font>";
Par ceci:
echo "<font color=\"red\">".$erreur."</font>";
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte