8792 sujets

Développement web côté serveur, CMS

Bonjour,
sur mon site, j'ai une page de contact.html qui appel un traitement.php pour envoyer le formulaire rempli vers un email. Mais j'obtiens la réponse suivante:
Parse error: syntax error, unexpected T_STRING in /home.2/v/a/l/valleedeg/cgi-bin/traitement.php on line 3
La ligne incriminée est la suivante :
$from=$civil=htmlentities($_POST["civil"])_$nom=htmlentities($_POST["nom"])_$prenom=htmlentities($_POST["prenom"])_<$email=htmlentities($_POST["email"])>;

J'ai mieux réécrit ma variable mais je ne trouve malgrès mes recherche sur le net.
Quelqu'un pourrait-il m'aider? Merci d'avance.
Je précise que la fonction mail() fonctionne correctement.

voici le code de mon traitement.php :
<?php
$eadresse="contact@voila.fr";
$from=$civil=htmlentities($_POST["civil"])_$nom=htmlentities($_POST["nom"])_$prenom=htmlentities($_POST["prenom"])_<$email=htmlentities($_POST["email"])>;
$adressep=$adresse=htmlentities($_POST["adresse"])_$codepostal=htmlentities($_POST["codepostal"])_$localite=htmlentities($_POST["localite"])_$telephone=htmlentities($_POST["telephone"]);
$from.="MIME-Version: 1.0\r\n";
$from.="Content-Type: text/html";
$adressep.="MIME-Version: 1.0\r\n";
$adressep.="Content-Type: text/html";
$texte="<html>";
$texte.="$texte";
$texte.="</html>";
if mail($eadresse, $from, $adressep, $plaquette, $connais, $texte);
echo("<center><font color=green><br><br><br><h2>Formulaire envoy&eacute; ! Nous vous r&eacute;pondrons rapidement. Merci!</h2></font><br><a href="www.site.fr/index.html"/>Cliquez ici pour revenir &agrave; l'accueil</a></center>");
else
echo("<center><font color=red><br><br><br><h2>Probl&egrave;me &agrave; l'envoi du mail...d&eacute;sol&eacute; nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href="mailto:$eadresse">classiquement</a>");
?>

ET aussi le formulaire contact.html :
<form name='formulaire' action='./cgi-bin/traitement.php' method='post'onSubmit='return verification()'>

<p>
<label>Je souhaite recevoir une plaquette d'information : </label> 
<input type="radio" name="plaquette" value="oui"
checked="checked" /> oui
<input type="radio" name="plaquette" value="non" /> non
</p>

<p>
<label>Comment avez vous connu notre site? :</label>
<select name="connais">
 <option value="choix"> choisissez</option>
<option value="internet"> internet</option>
 <option value="presse"> presse</option>
<option value="bouche"> bouche à oreille</option>
<option value="agence"> agence immobilière</option>
 <option value="autre"> autre</option>
</select>
</p>
<p>
<label>Civilitées : </label>
<input type="radio" name="civil" value="Mme"
checked="checked" /> Mme
<input type="radio" name="civil" value="Melle" /> Melle
<input type="radio" name="civil" value="M." /> M.
</p>
<p>
<label>NOM : </label><input name='nom' type='text' size='40'value=""/>
</p>
<p>
<label>Prénom : </label><input name='prenom' type='text' size='40'value=""/>
</p>
<p>
<label>Votre email : </label> 
<input type="text" name="email" size="40" 
maxlength="40" value="" />
</p>
<p>
<label>Adresse : </label>
<input type="text" name="adresse" size="40"
 value="" />
</p>
<p>
<label>Code postal : </label> 
<input type="text" name="codepostal" size="20" 
maxlength="10" value="" />
</p>
<p>
<label>Localité : </label>
<input type="text" name="localite" size="40" 
 value="" />
</p>
<p>
<label>Téléphone : </label>
<input type="text" name="telephone" size="20" 
maxlength="40" value="" />
</p>
<p>
<label>Message/ Demande d'information : </label> <br />
<textarea name="texte" cols="40" rows="4">
</textarea>
</p>

<p>
<input name='soumettre' type='submit' value='Envoyer'/>
<input name='annuler' type='reset' value='Annuler'/>
</p>
<p>
Tous les champs du formulaire <strong>doivent</strong> &ecirc;tre remplis.
</p>

</form>

Modifié par lulu31 (15 May 2007 - 17:02)
$from=$civil=htmlentities($_POST["civil"])_$nom=htmlentities($_.... 


j en copierai pas plus. dés qu'une ligne est trop longue

les scrollbars apparaissent chez moi et impossible de lire la ligne sauf en faisant une selection et coller dans notepad.

mais ça nous suffit largement

même si php accepte $a=$b=$c; faut pas en abuser.

mais $a=$b_$c là c'est game over Smiley cligne

t'as un paquet de _ à changer en =.
edit: a non peut être plutot en ; cette ligne est vraiment bizarre

j'ai pas été voir plus loin apres s'il y d'autres erreurs.
de toute façon 99,9% des fautes unexpected T_STRING sont des fautes de syntaxes.
Modifié par CPascal (12 May 2007 - 21:17)
Il faut apprendre à concaténer Smiley cligne

Quand on code, il faut que l'on puisse se comprendre soit même. J'ai réussi à comprendre ce que tu souhaitais faire au bout de 5 minutes.

Voilà ceci devrais fonctionner, essayes de le comprendre :

$civil=htmlentities($_POST['civil']);
$nom=htmlentities($_POST['nom']);
$prenom=htmlentities($_POST['prenom']);
$email='<'.htmlentities($_POST['email']).'>';

$from=$civil.'_'.$nom.'_'.$prenom.'_'.$email;

$adresse=htmlentities($_POST['adresse']);
$codepostal=htmlentities($_POST['codepostal']);
$localite=htmlentities($_POST['localite']);
$telephone=htmlentities($_POST['telephone']);

$adressep=$adresse.'_'.$codepostal.'_'.$localite.'_'.$telephone;
Bonjour,
merci superbaloo. Ca fonctionne. j'avais pensé à décomposer la chose mais je ne savais pas concaténer sous php. Faut dire que je débute.
ET ça marche.
Bon maintenant j'ai l'erreur suivante Smiley langue arse error: syntax error, unexpected T_STRING à la ligne 22 qui est :
echo("<center><font color=green><br><br><br><h2>Formulaire envoy&eacute; ! Nous vous r&eacute;pondrons rapidement. Merci!</h2></font><br><a href="www.monsite.fr/index.html"/>Cliquez ici pour revenir &agrave; l'accueil</a></center>");

Est ce que ma ligne est trop longue ou mon code ne convient pas?
Merci
salut,

remplace

<a href="www.monsite.fr/index.html"/>


par

<a href='www.monsite.fr/index.html'/>


sinon les " coupent ta chaine.
Modifié par CPascal (13 May 2007 - 23:49)
Merci pascal.
Ca fonctionne. Je crois que je vais finir par y arriver.
Le seul pb qui me reste est que ça me marque que le mail a été envoyé, mais je ne reçois toujours rien dans ma boite.
La il va falloir que je demande à ovh qui est mon hébergeur.
Bonne nuit.
Ou soit plus simplement, il faut changer les double quote de l'écho par des simple, ainsi ca évite d'avoir des simple quote et double quote dans le html.

echo('<center><font color=green><br><br><br><h2>Formulaire envoy&eacute; ! Nous vous r&eacute;pondrons rapidement. Merci!</h2></font><br><a href="www.monsite.fr/index.html"/>Cliquez ici pour revenir &agrave; l\'accueil</a></center>');


Enfin ca reviens au même (par contre ca demande de mettre des back slash devant les simple quote ... sniff)

;)
Bonjour,
merci pascal et superbaloo. Ca fonctionne. Le seul pb est que le message met entre 1min et 12h pour arriver sur la boite mail. Je ne sais pas si cela vient de ovh ou de mon hébergeur de mail. Le principal est que cela arrive.
Il me restera juste à vérifier pourquoi la vérification du remplissage correct des champs ne marche pas. Mais ce sera le sujet d'un autre topic.
Ce sujet là est donc résolu.
Encore une fois merci.
Bonne journée.
Une débutante toute contente Smiley smile Smiley smile Smiley smile