traitement formulaire

traitement formulaire - PHP - Programmation

Marsh Posté le 21-02-2007 à 16:55:07    

Bonjour,
 
j'ai écrit un script php qui devrait traiter un formulaire.
Au moment de l'envoi, j'ai une erreur  

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in trait_inscript.php on line 38


 
Voici mon code :  

Code :
  1. <?php
  2. // Traitement du formulaire d'inscription
  3. if (isset($_POST['nom']))
  4. {
  5. $nom = $_POST['nom'];
  6. $prenom = $_POST['prenom'];
  7. $adresse = $_POST['adresse'];
  8. $ville = $_POST['ville'];
  9. $pays = $_POST['pays'];
  10. $cp = $_POST['cp'];
  11. $tel = $_POST['tel'];
  12. $email = $_POST['email'];
  13. $jouer = $_POST['jouer'];
  14. $spectateur = $_POST['spectateur'];
  15. $dejaparticipe = $_POST['dejaparticipe'];
  16. $dejaparticipe_lequel = $_POST['dejaparticipe_lequel'];
  17. $destinataire = "test@hotmail.fr";
  18. $sujet = "Inscription tournoi";
  19. $entete = "From: traitement_automatique@test.com\r\n";
  20. $entete .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
  21. $entete .= "Content-Transfert-Encoding: 8bit";
  22. $msg = "Nom  :".$nom." \n\n";
  23. $msg .= "Prénom  :".$prenom." \n";
  24. $msg .= "Adresse  :".$adresse." \n";
  25. $msg .= "Ville  :".$ville." \n";
  26. $msg .= "Pays  :".$pays." \n";
  27. $msg .= "Code postal  :".$cp." \n\n";
  28. $msg .= "Téléphone  :".$tel." \n";
  29. $msg .= "Email  :".$email." \n";$msg .= "\n";
  30. $msg .= "Il souhaite jouer  :".$jouer." \n";
  31. $msg .= "Il souhaite être spectateur  :".$spectateur" \n";
  32. $msg .= "Il a déjà participé à un tournoi  :".$dejaparticipe." \n";
  33. $msg .= "Lequel  :".$dejaparticipe_lequel." \n";
  34. mail($destinataire, $sujet, $msg, $entete);
  35. echo '<b>Merci pour votre inscription,</b> texte...n\'hésitez pas à nous contacter au <b>04...</b> ou par mail : <b>...@...</b>.';
  36. }
  37. ?>


Voyez vous une erreur flagrante??
A force d'etre dedans, j'ai peut être fait une grosse erreur mais je ne la vois pas.
 
Merci d'avance


Message édité par kameha le 21-02-2007 à 16:59:14
Reply

Marsh Posté le 21-02-2007 à 16:55:07   

Reply

Marsh Posté le 21-02-2007 à 17:00:25    

il en manquait un . à spectateur :-(
merci quand même

Reply

Marsh Posté le 21-02-2007 à 17:12:57    

bon désolé jme fais un monologue mais j'ai un autre pb :
 
j'ai bien le message de confirmation comme quoi le formulaire est traité mais rien dans ma boîte de massagerie.
Savez-vous d'ou cela peut venir?
 
Que faut-il mettre exactement ici :  
$entete = "From: traitement_automatique@test.com\r\n";
Est ce que c'est important pour que le message parte bien?
 
Merci

Reply

Marsh Posté le 21-02-2007 à 17:33:29    

il renvois true ou false mail()?
Et dans le php.ini, t'as bien configuré ton serveur smtp?

Reply

Marsh Posté le 21-02-2007 à 17:38:11    

excuses je débute j'ai du mal à comprendre.
Je n'arrive pas à trouver le php.ini sur le serveur, normal?

Reply

Marsh Posté le 21-02-2007 à 17:57:20    

Tu fais tes test en local ou sur un serveur distant(chez un hébergeur ) ?
Si tu es en local, est-ce que tu as configuré le serveur de courier sortant (smtp) ?
Si tu es chez un hébergeur, est-ce que celui ci te permet d'utiliser la fonction mail ? (chez certain ce n'est pas possible)
 
Est ce que la fonction mail quand tu envois ton mail te renvois bien un 'true' (boolé&en, qui te dit que le mail est bien partis) ?
Est ce qu'il y a une erreur qui s'affiche ?
 
Note : dsl rufo.. je me suis permis d'expliciter tes propos ;)

Reply

Marsh Posté le 22-02-2007 à 10:28:22    

chani_t a écrit :

Tu fais tes test en local ou sur un serveur distant(chez un hébergeur ) ?
Si tu es en local, est-ce que tu as configuré le serveur de courier sortant (smtp) ?
Si tu es chez un hébergeur, est-ce que celui ci te permet d'utiliser la fonction mail ? (chez certain ce n'est pas possible)
 
Est ce que la fonction mail quand tu envois ton mail te renvois bien un 'true' (boolé&en, qui te dit que le mail est bien partis) ?
Est ce qu'il y a une erreur qui s'affiche ?
 
Note : dsl rufo.. je me suis permis d'expliciter tes propos ;)


 
pas de pb, ça m'évite de le faire :)
 
Sinon, une "petite astuce" : fais un script php qui contient seulement

Code :
  1. <?php
  2. phpinfo();
  3. ?>


 
et execute le là où t'execute ton script d'envoi de mail (donc en local sur ton pc via easyphp, wamp ou autre équivalent, on sur ton hébergeur). Ca va te donner pleins d'infos sur la conf du serveur. Il faut chercher dans le tableau une variable "SMTP" et voir ce qu'il y a d'écrit en face...


Message édité par rufo le 22-02-2007 à 10:31:56
Reply

Marsh Posté le 22-02-2007 à 12:45:37    

Merci pour vos réponses!
 
Voici ce que le phpinfo me donne :
SMTP localhost localhost
smtp_port 25 25
 
Ca veut dire quoi?

Reply

Marsh Posté le 22-02-2007 à 12:51:15    

après avoir fait une recherche, il semble qu'il faille remplacer localhost par un FAI.
J'ai du mal a comprendre lequel mettre par contre...
Il faut que je contact l'hébergeur est lui demander de le faire non?
Ce sera plus simple.

Reply

Marsh Posté le 22-02-2007 à 13:30:24    

ça veux dire que l'hébergeur n'a pas paramétré sont serveur SMTP, donc que tu ne peux pas envoyer de mail. normalement ça devrais te renvoyer une erreur ce genre de chose...

Reply

Marsh Posté le 22-02-2007 à 13:30:24   

Reply

Marsh Posté le 22-02-2007 à 13:36:08    

T'es tests sont fait chez un hébergeur ? :o
Si oui, tu dois les contacter pour leur demander le faire...
 
Par contre, si tu as accès au php.ini (donc si tu es sur un serveur local / dedié), tu peux définir le smtp dans ce fichier.


---------------
ilonet - Internet, Informatique et Webmastering
Reply

Marsh Posté le 22-02-2007 à 14:00:31    

Peut etre que je vais dire une bétise, mais la conf smtp, c'est que pour les machines windows non ?
Sur une machine linux, il utilise sendmail (ou tous autre MTA pt etre)
Donc, si c'est une machine linux, normal que la conf smtp ne soit pas configurer.

Reply

Marsh Posté le 22-02-2007 à 14:17:18    

j'ai une appli qui tourne sur un serveur sous Linux et les variables du php.ini relatives à la conf SMTP sont paramétrées. Donc, oui, je pense que tu dis une bêtise...

Reply

Marsh Posté le 22-02-2007 à 14:19:50    

nORKy a écrit :

Peut etre que je vais dire une bétise, mais la conf smtp, c'est que pour les machines windows non ?
Sur une machine linux, il utilise sendmail (ou tous autre MTA pt etre)
Donc, si c'est une machine linux, normal que la conf smtp ne soit pas configurer.


 
En effet, je viens de regarder chez mon hébergeur, et les variables relatives à la config smtp ne sont pas paramétrées. (et la fonction mail() de php marche très bien).


---------------
ilonet - Internet, Informatique et Webmastering
Reply

Marsh Posté le 22-02-2007 à 14:49:18    

jukieng a écrit :

En effet, je viens de regarder chez mon hébergeur, et les variables relatives à la config smtp ne sont pas paramétrées. (et la fonction mail() de php marche très bien).


 
ça peut simplement dire que le serveur smtp est exécuté sur le même serveur que apache/php...

Reply

Marsh Posté le 22-02-2007 à 14:51:37    

Arf.. c'est possible en effet.
 
Et tu as essayé d'envoyer un mail tout bête avec mail ?  
ta fonction mail te renvois quelque chose ?

Reply

Marsh Posté le 22-02-2007 à 15:05:24    

rufo a écrit :

ça peut simplement dire que le serveur smtp est exécuté sur le même serveur que apache/php...


 
Non, je ne crois pas
un MTA n'est pas qu'un serveur smtp
On n'a pas forcément envi de configurer son sendmail (ou autre) pour faire du smtp alors qu'on a uen machine dédié juste a coté.
généralement, un MTA non configuré est fourni avec la distrib, il suffit de configurer une ligne pour qu'il fasse son relais vers le smtp voulu
 
Sinon, toutes les machines linux/unix aurait alors un serveur smtp avec leur serveur web...
 
Je le sais, car j'ai dernierement configurer postfix pour que mon php puisse envoyé des mails sans avoir avec installé un serveur smtp
 
EDIT : tous ca pour dire qu'il faudrait plutot vérfier si la fonction mail est activé et si il n'y a pas d'eventuelle restriction (nombre de mail par jour par exemple)

Message cité 1 fois
Message édité par nORKy le 22-02-2007 à 15:06:10
Reply

Marsh Posté le 22-02-2007 à 15:05:26    

rufo a écrit :

ça peut simplement dire que le serveur smtp est exécuté sur le même serveur que apache/php...


 
Il faut que je me renseigne, mais pourtant, il me semble qu'ils ont un serveur mail à part...


---------------
ilonet - Internet, Informatique et Webmastering
Reply

Marsh Posté le 22-02-2007 à 15:39:24    

nORKy a écrit :

Non, je ne crois pas
un MTA n'est pas qu'un serveur smtp
On n'a pas forcément envi de configurer son sendmail (ou autre) pour faire du smtp alors qu'on a uen machine dédié juste a coté.
généralement, un MTA non configuré est fourni avec la distrib, il suffit de configurer une ligne pour qu'il fasse son relais vers le smtp voulu
 
Sinon, toutes les machines linux/unix aurait alors un serveur smtp avec leur serveur web...
 
Je le sais, car j'ai dernierement configurer postfix pour que mon php puisse envoyé des mails sans avoir avec installé un serveur smtp
 
EDIT : tous ca pour dire qu'il faudrait plutot vérfier si la fonction mail est activé et si il n'y a pas d'eventuelle restriction (nombre de mail par jour par exemple)


 
j'ai peut-être pas utilisé les bons mots, désolé. Quand je parlais de "serveur smtp", je pensais à sendmail (ie postfix). Pour moi, serveur smtp == programme qui envoie des mails. :whistle:  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed