Pb de condition avec <textarea>
- Accueil
- Forum
- Programmation
- PHP
- Pb de condition avec <textarea>
canyon38 Le 31 août 2016 à 22:27 (Édité le 25 janvier 2019 à 17:52)
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 Le 1 septembre 2016 à 09:49 (Édité le 1 janvier 1970 à 01:00)
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 Le 1 septembre 2016 à 09:57 (Édité le 1 janvier 1970 à 01:00)
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 Le 1 septembre 2016 à 11:33 (Édité le 1 janvier 1970 à 01:00)
<?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 Le 1 septembre 2016 à 19:26 (Édité le 1 janvier 1970 à 01:00)
Je regarde tout ça
A++
Balatharas Le 1 septembre 2016 à 20:23 (Édité le 1 janvier 1970 à 01:00)
echo "<font color='red'>";
echo $erreur;
echo "</font>";
Par ceci:echo "<font color=\"red\">".$erreur."</font>";