Page 1 sur 1
[Debut.] if (cond.1 && cond.2){fait....
Posté : 30 juil. 2005, 12:37
par marc_3
Bonjour,
J'ai un petit soucis avec la syntax de ce fragment de code:
Code : Tout sélectionner
elseif ((isset($_POST["btn_Speich"] )) && ($testKor==0)&& (!empty($_POST["q1"]))){
include "dbContabAutor.php";
"q1" est un textarea qui me permet la saisie d'n string.
Si le string est vide je ne veux pas l'enregistrer.
Est-ce que la syntax !empty est valable dans ce cas en liaion avec les &&
D'avance merci
Marc_3
Posté : 30 juil. 2005, 12:47
par Cyrano
Salut
syntaxiquement, la formulation est bonne, et veut dire qu'il faut que les trois conditions soient vérifiées : si l'une d'elle ne l'est pas, alors le elseif retourne false et on sort pour passer au test suivant.
As-tu un problème avec son fonctionnement ou un résultat inattendu ?
Posté : 30 juil. 2005, 13:08
par marc_3
Salut,
Oui je suis sence ne pas enregistrer une entree dans une BdD si le textarea "q1" est vide.
Je suis parti de l'idee que si q1 est vide alors empty retourne 1
mais si q1 n'est pas vide empty me retournera 0 donc je dois utilise encore une fois une negation et patatra ca marche pas comme ca apparement
Posté : 30 juil. 2005, 13:09
par Cyrano
Tu pourrais ajouter un détail lors de la récupéreation de ton champ texte : trim($_POST['q1']) : ça vire les espaces. Sinon, il suffit de mettre un simple espace dans le textarea pour faire croire qu'il y a un contenu.
Posté : 30 juil. 2005, 13:46
par marc_3
Je dois bricoler un peu pour recuperer mon string et cela m'oblige a faire ce truc en debut de code.
Je pensai que mon editeur allait reconnaitre le mot cle trim mais pas de reaction. Je travaille avec php 4.3.01 et easy php
Code : Tout sélectionner
if (isset($_POST["q1"])){$strTest = $_POST["q1"];}
else
$strTest = "";
$strTest = trim($strTest);
Avec ensuite
if ((isset($_POST["btn_Speich"] )) && ($testKor == 1)&& (!empty($strTest))){..........
Auparavant j'ai essaye cette version mais j'nai pas non plus eu de reconnaissance du mot cle
Code : Tout sélectionner
if ((isset($_POST["btn_Speich"] )) && ($testKor == 1)&& trim((!empty($_POST["q1"])))){
Posté : 30 juil. 2005, 14:14
par marc_3
En fait c'es plutot
Code : Tout sélectionner
elseif ((isset($_POST["btn_Speich"] )) && ($testKor==0) && (!empty(trim($_POST["q1"];);)) ){
avec comme message d'erreur
Parse error: parse error, expecting `T_VARIABLE' or `'$'' in c:\program files\easyphp1-8\www\cible\cible zu schicken\form_autor.php on line 179
Comment faire?
Posté : 30 juil. 2005, 15:28
par Cyrano
Elève les points virgule dans des parenthèses:
elseif ((isset($_POST["btn_Speich"] )) && ($testKor==0) && (!empty(trim($_POST["q1"]))) )
Posté : 30 juil. 2005, 16:49
par marc_3
Pas de changement je sais pas trop ce qui se passe
Posté : 30 juil. 2005, 16:53
par Cyrano
Tu obtiens quoi à l'affichage ?
Posté : 30 juil. 2005, 17:08
par marc_3
Sa c'est le message d'erreur
Parse error: parse error, expecting `T_VARIABLE' or `'$'' in c:\program files\easyphp1-8\www\cible\cible zu schicken\form_autor.php on line 179
Et ici le code
Code : Tout sélectionner
elseif ((isset($_POST["btn_Speich"] )) && ($testKor==0) && (!empty(trim('$_POST["q1"]'))) ){
J'ai essaye de controle et je ne trouve pas d'erreur avec ce fragment
qui est comme l'autre moin le empty.
Posté : 30 juil. 2005, 17:13
par rami
Essaies ca:
elseif ((isset($_POST["btn_Speich"]) && ($testKor==0) && !empty(trim($_POST["q1"]))){
...
elseif ((isset($_POST["btn_Speich"]) && ($testKor==0) ){
Y'avait trop de parenthèses fermantes et des quotes inutiles dans les arguments de trim()

Posté : 30 juil. 2005, 17:17
par marc_3
Ben non c'est pas sa non plus, (mes parentheses etaient juste non?)
Posté : 30 juil. 2005, 19:48
par marc_3
J'en ai marre de ce truc je vais utilise une autre methode pour savoir si le string contien autre chose que des caracteres blancs.
Ce qui veut dire que je laisse tombe ce sujet pour en ouvrir un autre pour connaitre l'encodage du caractere vide "espace entre deux mots
A tous de suite dans question suivantes
Merci pour la peine
Marc_3
Posté : 30 juil. 2005, 19:55
par Cyrano
J'en ai marre de ce truc...
La patience est une vertu fort utile en programmation, en particulier en phase de débuggage: On peut parfois devoir contourner le problème pour ne pas s'éterniser, mais dans ce cas précis, il serait à mon avis plus iportant que tu saisisses correctement la nature du bobo.
Par exemple,
rami soulève le problème des parenthèses surnuméraires : je vais te dire comment je fais personnellement. Quand j'ouvre une parenthèse, je la referme immédiatement, et
après seulement j'y insère du contenu. Même chose pour les accolades. Enfin, une indentation systématique du code et c'est la moitié du temps de débuggage qui disparait et que je peux consacrer à autre chose.