Page 1 sur 1

Formulaire, suite

Posté : 13 janv. 2007, 14:10
par cmoi
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 ?

Posté : 13 janv. 2007, 15:09
par Ajoloca
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>';  

Posté : 13 janv. 2007, 15:09
par Cyrano
Conflit entre les apostrophes encadrant la chaine et celles contenues dans cette même chaine.

Posté : 13 janv. 2007, 15:56
par cmoi
c'est trop bête ! j'oublie toujours le problème de l'apostrophe.
Et merci.

Posté : 13 janv. 2007, 18:26
par Cyrano
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