Formulaire, suite

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 : Formulaire, suite

par Cyrano » 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

par cmoi » 13 janv. 2007, 15:56

c'est trop bête ! j'oublie toujours le problème de l'apostrophe.
Et merci.

par Cyrano » 13 janv. 2007, 15:09

Conflit entre les apostrophes encadrant la chaine et celles contenues dans cette même chaine.

par Ajoloca » 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>';  

Formulaire, suite

par cmoi » 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 ?