Page 1 sur 1

T_ENCAPSED_AND_WHITESPACE que je ne comprend pas

Posté : 29 déc. 2011, 19:03
par memej
Bonsoir
Je n'arrive pas à comprendre pourquoi ce code n'est pas valide :
<?php


mail("[email protected]","Demande d'infos","


Demande de ".$_POST['Nom']." ".$_POST['Prenom']."
if (isset($_POST['Mail']))
 { $Mail = $_POST['Mail']; } else { $Mail = ""; }
 if ($Mail == "") { $reponse = "Vous avez oublié votre adresse e-mail."; }5.if (!eregi("^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$", $Mail)) { $reponse = "Est-ce bien une adresse email valide ?"; }
Adresse: ".$_POST['Adresse']."
CP: ".$_POST['Cp']."
Ville: ".$_POST['Ville']."
Pays: ".$_POST['Pays']."
E-mail: ".$_POST['Mail']."
Message: ".$_POST['Message']."
Reservation: ".$_POST['RadioInfo_demandee1']."
Infos: ".$_POST['RadioInfo_demandee2']."
Jour: ".$_POST['SelArrivee_Jour']."
Mois: ".$_POST['SelArrivee_Mois']."
Annee: ".$_POST['SelArrivee_Annee']."
DepartJour: ".$_POST['SelDepart_Jour']."
Mois: ".$_POST['SelDepart_Mois']."
Annee: ".$_POST['SelDepart_Annee']."


 ","


From:formulaire");


 
?>
En fait, il fonctionne bien avant que je mette des conditions a 'Mail'
Alors la page affiche : P

Code : Tout sélectionner

arse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /homepages/41/d332312648/htdocs/pages/testform2.php on line 10
Quelqu'un a t-il une idée svp
Merci de vos eventuelles réponses

Re: JE trouve pas le problème !

Posté : 29 déc. 2011, 21:24
par Invité
Bon ! Comme le 5. ne change rien et que c'est un résidu de mon ancienne organisation je l'ai viré. Cela ne fonctionne toujours pas alors je vais essayer de positionner ces conditions sous le Post 'Mail'

Re: JE trouve pas le problème !

Posté : 29 déc. 2011, 21:40
par xTG
Ce code n'est pas valide car tu mets du code PHP à l'intérieur d'une chaîne de caractères.
Bon encore c'est pas méchant, mais dans ton code PHP tu as des affichages utilisant les mêmes quotes, donc du coup bang !

On voit le problème avec n'importe quel coloration syntaxique :
<?php


mail("[email protected]","Demande d'infos","


Demande de ".$_POST['Nom']." ".$_POST['Prenom']."
if (isset($_POST['Mail']))
{ $Mail = $_POST['Mail']; } else { $Mail = ""; }
if ($Mail == "") { $reponse = "Vous avez oublié votre adresse e-mail."; }5.if (!eregi("^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$", $Mail)) { $reponse = "Est-ce bien une adresse email valide ?"; }
Adresse: ".$_POST['Adresse']."
CP: ".$_POST['Cp']."
Ville: ".$_POST['Ville']."
Pays: ".$_POST['Pays']."
E-mail: ".$_POST['Mail']."
Message: ".$_POST['Message']."
Reservation: ".$_POST['RadioInfo_demandee1']."
Infos: ".$_POST['RadioInfo_demandee2']."
Jour: ".$_POST['SelArrivee_Jour']."
Mois: ".$_POST['SelArrivee_Mois']."
Annee: ".$_POST['SelArrivee_Annee']."
DepartJour: ".$_POST['SelDepart_Jour']."
Mois: ".$_POST['SelDepart_Mois']."
Annee: ".$_POST['SelDepart_Annee']."


","


From:formulaire");



?>

Re: JE trouve pas le problème !

Posté : 30 déc. 2011, 19:58
par memej
Merci. Donc j'ai changé mail par messagerie dans le code mais après je sèche :cry:

Re: JE trouve pas le problème !

Posté : 30 déc. 2011, 23:31
par moogli
faut "échapper" les caractères, donc dans la chaine " devient \"

@+

Re: JE trouve pas le problème !

Posté : 31 déc. 2011, 10:05
par xTG
faut "échapper" les caractères, donc dans la chaine " devient \"

@+
Il y a plus qu'échapper. :lol:
Il a un code PHP qu'il veut exécuter à l'intérieur d'une string...
Ce qui m'étonne c'est que la coloration syntaxique ne semble pas le gêner...

Re: T_ENCAPSED_AND_WHITESPACE que je ne comprend pas

Posté : 31 déc. 2011, 11:19
par zeus
Modération :
Merci de faire attention lors du choix du titre, pour qu'il soit clair pour ceux qui auraient un problème similaire.
De même, merci d'utiliser les balises [php] pour déposer du code

Re: T_ENCAPSED_AND_WHITESPACE que je ne comprend pas

Posté : 31 déc. 2011, 12:22
par memej
Merci pour les réponses. J'ai noté les remarques du modérateur.
Je travaille avec Dreamweaver, je connais surtout le html et le script mais mal le php.
Donc comme j'ai dû faire un formulaire en php, je bidouille et suis venu poser une question sur le forum "PHP débutant".
En tant que grand débutant, je ne comprends pas toutes vos remarques et si la coloration syntaxique ne me gênes pas c'est que je n'y suis pas habitué !
Je comprends bien que certains caractères sont pas à leur place mais les échapper échappe à ma compréhension :oops:

Re: T_ENCAPSED_AND_WHITESPACE que je ne comprend pas

Posté : 31 déc. 2011, 13:05
par xTG
Actuellement tu mets du code de traitement au sein d'un texte.
PHP n'est pas fait pour traiter de la sorte.

Exemple à ne pas faire :
maFonction( $variable, "unParamètre", "untexte if( $test > 5){
  $toto = "test";
}" . $toto);
Voilà comment faire :
$toto = "";
if( $test > 5 ){
  $toto = "test";
}
maFonction( $variable, "unParamètre", "untexte" . $toto);

Re: T_ENCAPSED_AND_WHITESPACE que je ne comprend pas

Posté : 31 déc. 2011, 13:21
par memej
Merci. Je vais reconstruire à partir de tes remarques. Peux-tu, stp, m'expliquer ce que veux dire "litteralement" T_ENCAPSED_AND_WHITESPACE

Re: T_ENCAPSED_AND_WHITESPACE que je ne comprend pas

Posté : 31 déc. 2011, 13:53
par xTG
En gros il s'attendait à la fin d'une expression ou bien une concaténation.
C'est ce genre de code qui génère l'erreur :
echo "texte" $variable;
Il faudrait utiliser par exemple :
echo "texte" . $variable;