Formulaire, suite

Eléphant du PHP | 440 Messages

13 janv. 2007, 14:10

Bonjour,

voici un code que j'ai récupéré dans un tuto. Je n'ai changé que les noms des champs :
  // On vérifie si les champs sont vides 
if(empty($SOCIETE) OR empty($CONTACT) OR empty($ADRESSE) OR empty($CP) OR empty($VILLE) OR empty($MAIL) ) 
    { 
    echo '<center><font face="Arial, Helvetica, sans-serif" size="2" color="#666666">Attention, les champs marqués d'une<font color="red">*</font>doivent être renseignés !</font></center>'; 
    } 

// Aucun champ n'est vide, on peut enregistrer dans la table 
else      
    { 
et ça me renvoie un message d'erreur.

Moi j'aurais eu tendance à concaténer, ainsi :
  // On vérifie si les champs sont vides 
if(empty($SOCIETE) OR empty($CONTACT) OR empty($ADRESSE) OR empty($CP) OR empty($VILLE) OR empty($MAIL) ) 
    { 
    echo '<center><font face="Arial, Helvetica, sans-serif" size="2" color="#666666">'.'Attention, les champs marqués d'une'.'<font color="red">'.'*'.'</font>'.'doivent être renseignés !'.'</font></center>'; 
    } 

// Aucun champ n'est vide, on peut enregistrer dans la table 
else      
    { 
Mais j'ai le même message d'erreur.

Qui voit pourquoi ?
Débutant complet en php/mysql. Merci pour votre aide.

ViPHP
ViPHP | 1961 Messages

13 janv. 2007, 15:09

Bonjour,
Moi, sans concaténation, je ferai comme ça
echo '<center><font face="Arial, Helvetica, sans-serif" size="2" color="#666666">Attention, les champs marqués d\'une<font color="red">*</font>doivent être renseignés !</font></center>';  
Modifié en dernier par Ajoloca le 13 janv. 2007, 15:09, modifié 1 fois.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Mammouth du PHP | 19672 Messages

13 janv. 2007, 15:09

Conflit entre les apostrophes encadrant la chaine et celles contenues dans cette même chaine.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 440 Messages

13 janv. 2007, 15:56

c'est trop bête ! j'oublie toujours le problème de l'apostrophe.
Et merci.
Débutant complet en php/mysql. Merci pour votre aide.

Mammouth du PHP | 19672 Messages

13 janv. 2007, 18:26

Pour ta culture, il existe une manière de ne plus se soucier du tout des conflits D'apostrophes ou de guillemets : utiliser les commentaires Heredoc.

Au lieu de faire :
if(empty($SOCIETE) OR empty($CONTACT) OR empty($ADRESSE) OR empty($CP) OR empty($VILLE) OR empty($MAIL) ) 
    { 
    echo '<center><font face="Arial, Helvetica, sans-serif" size="2" color="#666666">Attention, les champs marqués d\'une<font color="red">*</font>doivent être renseignés !</font></center>'; 
    }
Tu remplaces par :
if(empty($SOCIETE) OR empty($CONTACT) OR empty($ADRESSE) OR empty($CP) OR empty($VILLE) OR empty($MAIL) ) 
{
    $msg = <<<MSG
  <center><font face="Arial, Helvetica, sans-serif" size="2" color="#666666">Attention, les champs marqués d'une<font color="red">*</font>doivent être renseignés !</font></center>
MSG;
    echo $msg; 
}
Attention, le "MSG;" qui ferme le bloc Heredoc doit impérativement commencer au début de la ligne et ne pas être indenté.

Voir la documentation sur Heredoc
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: