Verif si textarea vide

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Verif si textarea vide

par laplumaencre » 28 janv. 2008, 18:11

Bon j'ai fait l'essais :-( idem ..il sort de la boucle, j'arrive pas asavoir ce qu'il peut trouver ds cette variable vu qu'elle est pourtant bien vide ...j'ai testé avec 0 avec null avec "" idem ...

par h0_noMan » 28 janv. 2008, 18:06

// Remplace
if( strlen($_POST["message"])==0 ){ 
// Par
if(empty($_POST["message"])){ 

par laplumaencre » 28 janv. 2008, 18:04

non j'ai essayé de mettre un echo apres et non il rentre pas ds la boucle il sort direct apres cette condition :-( Vraiment bizarre ce truc ...

par d0m » 28 janv. 2008, 16:26

après test, la condition marche parfaitement :
if( strlen($_POST["message"])==0 )
Es tu sûr qu'on ne rentre pas dans la condition ou ton script qui suit échoue ce qui te donne cette impression?
Avec un simple
if( strlen($_POST["message"])==0 ){
  echo 'entre dans la boucle';
...
ca ne donne rien?

par laplumaencre » 28 janv. 2008, 15:35

Voici le resultat de mon var_dump =>

Code : Tout sélectionner

array(5) { ["email"]=> string(0) "" ["spam"]=> string(0) "" ["message"]=> string(0) "" ["envoyer_x"]=> string(2) "96" ["envoyer_y"]=> string(2) "24" }
Ps: ne pas s'occuper du envoyer *2 c'est mon bouton avec roll-over...

par d0m » 28 janv. 2008, 13:01

Donc j'ai fait un var_dump($_POST) et ça me renvois qu => string(message) = 0 ...
bizarre ce que tu as dans POST.
Pour entrer dans la boucle tu devrais avoir en faisant un var_dump de $POST:

Code : Tout sélectionner

["message"] => string(0) ""
je crois bien que tu n'as pas dans $_POST['message'] ce que tu penses...

par h0_noMan » 28 janv. 2008, 12:26

Essayes de stocker $_POST["message"]dans une variable puis de tester la variable directement.

par laplumaencre » 28 janv. 2008, 12:20

Salut merci de regarder encore mon billet :-)
Donc j'ai fait un var_dump($_POST) et ça me renvois qu => string(message) = 0 ...
c'est ça le truc, car effet si il sort de la boucle s'est forcement que >1, mais il semble que non ..un vrai casse tete chinois
Bon je continu de chercher..

par d0m » 28 janv. 2008, 09:39

as tu reagréd ce qui se trouve dans la variable $_POST["message"] ?
Si
(strlen($_POST["message"])==0)
est faux c'est forcement que
strlen($_POST["message"]) > 1
donc fais des affichages simples avant le test pour voir ce qui s'y trouve :
echo 'la variable existe : ';if(isset($_POST["message"])) echo 'oui';else echo 'non';echo '<BR>';
echo 'nombre de caracteres : '.strlen($_POST["message"]).'<BR>';
echo 'contenu : '.$_POST["message"].'<BR>';
echo 'nombre de caracteres sans espaces vides : '.strlen(trim($_POST["message"])).'<BR>';
echo 'contenu sans espaces vides : '.trim($_POST["message"]).'<BR>';
if (strlen($_POST["message"]) == 0 ) {
...
}

par laplumaencre » 27 janv. 2008, 18:52

Les sessions sont utiles dans le script car quand il y une erreur, genre email vide ou non valide, l'utilisateur n'a pas a tout retaper ds email et ds la zone de texte (nommé spam)
Mais ce script fonctionnait super bien, je veux juste que si la 2eme zone de texte invisible a l'utilisateur (textarea nommé message) est remplit, que le script s'arrete et donc n'envois pas de mail...
Donc le blocage se trouve là
if (strlen($_POST["message"]) == 0 ) {
...
}
Php arrete tjs le script alors que ma variable $_POST['message'] est pourtout belle et bien vide :-(

par h0_noMan » 27 janv. 2008, 18:47

Une petite question.

Pourquoi utilises tu les SESSIONS dans ton script ?

par laplumaencre » 27 janv. 2008, 18:35

Je ne peux pas l'initialiser au depart puisque je veux justement savoir quand le script demarre si la $_SESSION['message'] est vide ou non, ET enf ait apres correction, je test direct sur
if (strlen($_POST["message"]) == 0 ) {
...
}

par Truc » 27 janv. 2008, 18:29

Attention :
$-Session['mail'] n'est pas $_SESSION['mail']

Je parle de cette ligne
if (strlen($_SESSION["message"]) == 0 )
$_SESSION["message"] n'est pas initialisée (ou affectée).
Puis pour le reste sans reprendre le code et l'indenter par moi même je ne vois rien donc illisible :?

par laplumaencre » 27 janv. 2008, 18:19

tu parle de la variable $-Session['mail'] ??, c'est en fait une variable qui me sert a renvoyer le message d'erreur, ou message email envoyé.
Sinon j'ai pas tout compris a ce que tu m'as dit :oops:

par Truc » 27 janv. 2008, 17:24

Pour bien se faire comprendre il faut bien parler (à ce qu'il paraît :lol: )

Il n'y a pas de boucle dans ton code mais des instructions conditionnelles.
Tu peux également indenterton code correctement pour l'aérer et faciliter sa lecture.

Ensuite tu utilises des variables de session qui n'ont jamais été affectées des variables POST.