[Debut.] if (cond.1 && cond.2){fait....

Eléphant du PHP | 72 Messages

30 juil. 2005, 12:37

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

Mammouth du PHP | 19672 Messages

30 juil. 2005, 12:47

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 ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 72 Messages

30 juil. 2005, 13:08

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

Mammouth du PHP | 19672 Messages

30 juil. 2005, 13:09

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 72 Messages

30 juil. 2005, 13:46

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"])))){

Eléphant du PHP | 72 Messages

30 juil. 2005, 14:14

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?

Mammouth du PHP | 19672 Messages

30 juil. 2005, 15:28

Elève les points virgule dans des parenthèses:
elseif ((isset($_POST["btn_Speich"] )) && ($testKor==0) && (!empty(trim($_POST["q1"]))) )
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 72 Messages

30 juil. 2005, 16:49

Pas de changement je sais pas trop ce qui se passe

Mammouth du PHP | 19672 Messages

30 juil. 2005, 16:53

Tu obtiens quoi à l'affichage ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 72 Messages

30 juil. 2005, 17:08

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.


Code : Tout sélectionner

elseif ((isset($_POST["btn_Speich"] )) && ($testKor==0) ){

Mammouth du PHP | 983 Messages

30 juil. 2005, 17:13

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() ;)

Eléphant du PHP | 72 Messages

30 juil. 2005, 17:17

Ben non c'est pas sa non plus, (mes parentheses etaient juste non?)

Eléphant du PHP | 72 Messages

30 juil. 2005, 19:48

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

Mammouth du PHP | 19672 Messages

30 juil. 2005, 19:55

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: