Envoi de mail avec variables

Rechercher

Envoi de mail avec variables

Par arbilus  -  5 reponses  -  Le 06/07/2010 20:47  -  Editer  - 

Bonjours, j'ai un problème d'envoi de mail à partir d'un script:

$subject="xxxxxxxxxxx";$header="from: "echo $a" <$data['email']>";$messages= "xxxxxxxxxxxxxxxx: \r\n";$messages.="xxxxxxxxxxxxxxxx "echo $a" (xxxxxx: "echo $b") \r\n";$messages.="xxxxxxxxxxxxxxxx "echo $c"  xxxxxx "echo $d" xxxx .    \r\n";$messages= "xxxxxxxxxxxxxxxx "$data['e']" "$data['f']" \r\n";$messages= "xxxxxxxxxxxxxxxx: \r\n";$messages= "-xxxxxx: "echo $data['g'] " \r\n";$messages= "-xxxxxx: "echo $data['h'];" \r\n";$messages= "-xxxxxx: "echo $data['i'];" \r\n";$messages= "-xxxxxx: "echo $data['j'];" \r\n";$messages= "xxxxxx "echo $data['k']" \r\n";mail($_POST['email'],$subject,$messages,$header);print ("<script language = \"JavaScript\">"); print ("location.href = 'xxxxxx.html';"); print ("</script>");mysql_close();exit();

 

J'obtiens ceci comme erreur: "Parse error: syntax error, unexpected T_ECHO in /home/arbilus/public_html/cpanel/sentwant2.php on line 236" .

La ligne 236 équivaut à la deuxième ligne du code: le "from".

Donc je sais bien que je l'ai mal écris, mais je vois pas comment faire pour l'écrire correctement .

De plus, je me doute bien qu'il n'y a pas que cette erreur. Donc si vous pourriez m'aider à corriger ce code...

 

Réponses apportées à cette discussion

Par arbilus  -  Le 06/07/2010 20:48  -  Haut de page  - 
$subject="xxxxxxxxxxx";$header="from: "echo $a" <$data['email']>";$messages= "xxxxxxxxxxxxxxxx: \r\n";$messages.="xxxxxxxxxxxxxxxx "echo $a" (xxxxxx: "echo $b") \r\n";$messages.="xxxxxxxxxxxxxxxx "echo $c"  xxxxxx "echo $d" xxxx .    \r\n";$messages= "xxxxxxxxxxxxxxxx "$data['e']" "$data['f']" \r\n";$messages= "xxxxxxxxxxxxxxxx: \r\n";$messages= "-xxxxxx: "echo $data['g'] " \r\n";$messages= "-xxxxxx: "echo $data['h'];" \r\n";$messages= "-xxxxxx: "echo $data['i'];" \r\n";$messages= "-xxxxxx: "echo $data['j'];" \r\n";$messages= "xxxxxx "echo $data['k']" \r\n";mail($_POST['email'],$subject,$messages,$header);print ("<script language = \"JavaScript\">"); print ("location.href = 'xxxxxx.html';"); print ("</script>");mysql_close();exit();Désolé, le code n'a pas pris en amont.
 
Par Cyrano  -  Le 07/07/2010 07:54  -  Haut de page  - 

Tss tss tss, Arlibus, comment fait-on une concaténation de chaine en PHP ?

Tu as effectivement une erreur dans la ligne du « from », erreur que tu reproduis ensuite dans les lignes 2, 3 et 4 du « message »

Dans ton code, il faut distinguer ce qui est PHP de ce qui est valeur traitée. Là, tu affectes des valeurs à des variables. Mais ces mêmes valeurs sont partiellement dynamiques et contiennent elles-même des éléments variables. Il faut donc concaténer des chaines de caractères à des variables pour affecter le tout aux variables $header et $message.

Prenons ta variable $header. La valeur finale doit ressembler à « *from: Louis-Artistide Vabo * » : le nom et l'adresse de courriel sont des valeurs dynamiques variables. Il faut donc construire cette chaîne en concaténant les différentes partie, donc on fait :

$header="from: ". $a ." <". $data['email'] .">";

Je te laisse le soin de corriger les autres ;)

 

 
Par arbilus  -  Le 07/07/2010 11:49  -  Haut de page  - 

Ok, code final:

 

$subject="xxxxxxxxxxx";$header='from:' .$user. '<'.$data['email'].'>';$messages= "xxxxxxxxxx \r\n";$messages.="xxxxxxxxxxx ".$user." (xxxxxxxxxxx: ".$xxxxxxxx.") \r\n";$messages.="xxxxxxxxxxx ".$xxxxxxxxx."xxxxxxxxxxxxxxx xxxxxxxxxxx ".$xxxxxx." xxxxxx .    \r\n";$messages.= "xxxxxxx ".$data['xxxxx']." ".$data['xxx']." \r\n";$messages.= "xxxxxxxxx \r\n";$messages.= "xxxxxx ".$data['xxxxxx']." \r\n";$messages.= "xxxxxx ".$data['xxxxxx']." \r\n";$messages.= "xxxxxx ".$data['xxxxxx']." \r\n";$messages.= "-xxxxxx ".$data['xxxxx']." \r\n";$messages.= "xxxxxxxxxxxxx ".$data['xxxxxxx']." \r\n";mail("xxxxxx@xxxxxx.xx",$subject,$messages,$header);

 

 
Par Cyrano  -  Le 07/07/2010 11:55  -  Haut de page  - 

C'est nettement mieux et je parie que tu n'as plus d'erreur.

Juste un dernier conseil quand même : aère un peu ton code, ça te facilitera la relecture. N'oublie jamais un truc important : aujourd'hui, tu es à l'aise dans ton code et tu t'y retrouves très rapidement, mais dis-toi que si tu passes à autre chose quelques mois et que tu dois y revenir, tu vas râler contre toi-même.

Exemple, c'est mineur mais tu trouveras peut-être que c'est plus clair :

$subject   ="xxxxxxxxxxx";
$header    ='from:'. $user .'<'. $data['email'] .'>';
$messages  = "xxxxxxxxxx \r\n";
$messages .="xxxxxxxxxxx ". $user ." (xxxxxxxxxxx: ". $xxxxxxxx .") \r\n";
$messages .="xxxxxxxxxxx ". $xxxxxxxxx ."xxxxxxxxxxxxxxx xxxxxxxxxxx ". $xxxxxx ." xxxxxx . \r\n";
$messages .= "xxxxxxx ". $data['xxxxx'] ." ". $data['xxx'] ." \r\n";
$messages .= "xxxxxxxxx \r\n";
$messages .= "xxxxxx ". $data['xxxxxx'] ." \r\n";
$messages .= "xxxxxx ". $data['xxxxxx'] ." \r\n";
$messages .= "xxxxxx ". $data['xxxxxx'] ." \r\n";
$messages .= "-xxxxxx ". $data['xxxxx'] ." \r\n";
$messages .= "xxxxxxxxxxxxx ". $data['xxxxxxx'] ." \r\n";
mail("xxxxxx@xxxxxx.xx",$subject,$messages,$header);

:)

 

 
Par arbilus  -  Le 07/07/2010 12:01  -  Haut de page  - 

Oui, c'est vrai que c'est plus clair .

 

...Problème réglé !

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |