Problème codage formulaire PHP

Résolu/Fermé
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012 - 3 janv. 2012 à 00:09
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012 - 11 janv. 2012 à 21:57
Bonjour,
Je débute en matière de php, j'ai intégrer une formulaire dans ma page html (méthode POST), puis j'ai crée le .php.
Après la mise en ligne lorsque je simule un envoi sur le formulaire j'obtient :

Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING in /var/www/goldforevents.com/htdocs/formulaire.php on line 9
<config>Mac OS X / Safari 534.52.7</config>

Où se trouve mon erreur ?
Merci d'avance


Codage HTML :
<form method="post" action="formulaire.php"><imput
type="hidden" name="subject" value="formmail"> Nom de la
société: </imput>
<div><input name="objet" type="text"></div>
E-mail:
<div><input name="votremail" type="text"></div>
Message:<br>
<textarea cols="50" rows="5" name="message"></textarea><br>
Téléphone:<br>
<div><input name="title" type="text"></div>
<br>
<p><input value="Envoyer" type="submit"> </p>
</form>

Codage PHP :
<?php
$TO = "contact@goldforevents.com";
$subject = "Demande de devis";
$h = "From: " . $TO;
$message = "Formulaire de contact";
while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);
header("Location:accuse.html");
?>
A voir également:

20 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
10 janv. 2012 à 21:27
avec:

formulaire.html:
<form method="post" action="formulaire.php">
<input type="hidden" name="subject" value="formmail" />
 Nom de la société: 
<div><input name="objet" type="text"></div>
E-mail:
<div><input name="votremail" type="text"></div>
Message:<br>
<textarea cols="50" rows="5" name="message"></textarea><br />
Téléphone:<br>
<div><input name="title" type="text"></div>
<br>
<p><input value="Envoyer" type="submit"> </p>
</form>


formulaire.php
<?php
$dest = "contact@goldforevents.com";
$subject = "Demande de devis";
$h = "From:axel.freymond@goldforevents.com" ;
$corps_message = "Formulaire de contact";
while (list($key, $val) = each($_POST)) {
$corps_message .= "$key : $val\n";
}
if(mail($dest, $subject, $corps_message, $h)){
	$mail_env="Le mail a bien été envoyé !";
}else{
	$mail_env="Pb: le mail n'a pas été envoyé";
}
header("Location:accuse.php?result=".$mail_env);
?>


et accuse.php

<?php
if(isset($_GET['result'])){
	echo $_GET['result'];

}
?>


Chez moi en local je n'ai pas d'erreur, le mail ne part pas mais c'est parce que wamp mon serveur local n'est pas configuré pour cela.
1
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
10 janv. 2012 à 21:37
J'obtient encore le même message d'erreur, vous pouvez allé le constater sur :
www.goldforevents.com/index-4.html

Est-ce qu'il est possible que le problème provienne d'autre chose car cela me paraît étonnant que ce soit la même erreur qui revienne alors que les codes diffèrent ...

Quel est votre avis sur la question ?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
10 janv. 2012 à 21:54
en mettant un echo pour voir
<?php
$dest = "contact@goldforevents.com";
$subject = "Demande de devis";
$h = "From:axel.freymond@goldforevents.com" ;
$corps_message = "Formulaire de contact";
while (list($key, $val) = each($_POST)) {
	$corps_message .= $key." : ".$val."\n";
}
///TEST
echo "Corps du message: ".$corps_message;
//
/*
if(mail($dest, $subject, $corps_message, $h)){
	$mail_env="Le mail a bien été envoyé !";
}else{
	$mail_env="Pb: le mail n'a pas été envoyé";
}

header("Location:accuse.php?result=".$mail_env);
*/
?>


ça donne quoi?
1
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
10 janv. 2012 à 22:02
Exactement la même erreur :
Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING in /var/www/goldforevents.com/htdocs/formulaire.php on line 9

Je ne sais plus quoi faire ... :(
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
10 janv. 2012 à 22:07
tu as bien mis cette partie en commentaires par /* */

/*
if(mail($dest, $subject, $corps_message, $h)){
	$mail_env="Le mail a bien été envoyé !";
}else{
	$mail_env="Pb: le mail n'a pas été envoyé";
}

header("Location:accuse.php?result=".$mail_env);
*/


est ce que dans ton editeur ton script est bien en encodage ANSI ?
1
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
10 janv. 2012 à 22:18
Bonne nouvelle après cette nouvelle petite vérification j'obtient :
Corps du message: Formulaire de contact subject : formmail objet : Demande de devis votremail : a@hjjh.com message : lalalalal title : test
0
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
10 janv. 2012 à 22:26
En revanche lorsque je met le codage précédent sans l'écho j'obtient la simple presentation du codage sur la page web ...
0
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
10 janv. 2012 à 22:27
Petite précision je reçois parfaitement le mail donc cela fonctionne j'aimerais simplement cacher le code pour que les personnes qui envoient un formulaire ne visionne pas le code ...
0
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
9 janv. 2012 à 21:11
Personne ne sais ? :(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 janv. 2012 à 22:57
<form method="post" action="formulaire.php">
<!-- <imput type="hidden" name="subject" value="formmail"> Nom de la
société: </imput> // ce n'est pas imput mais input et pas de balise de fermeture -->
<input type="hidden" name="subject" value="formmail" />
 Nom de la société: 
<div><input name="objet" type="text"></div>
E-mail:
<div><input name="votremail" type="text"></div>
Message:<br>
<textarea cols="50" rows="5" name="message"></textarea><br />
Téléphone:<br>
<div><input name="title" type="text"></div>
<br>
<p><input value="Envoyer" type="submit"> </p>
</form>

Codage PHP :
<?php
$TO = "contact@goldforevents.com";
$subject = "Demande de devis";
$h = "From: " ton adresse mail connue de ton hebergeur;
$message = "Formulaire de contact";
while (list($key, $val) = each($_POST)) {
$message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);
header("Location:accuse.html");
?>
0
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
10 janv. 2012 à 07:47
Merci, lorsque je le met en ligne j'obtient de nouveau :

Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING in /var/www/goldforevents.com/htdocs/formulaire.php on line 9
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 10/01/2012 à 09:15
essayes comme ça:

while (list($key, $val) = each($_POST)) { 
 $message .= $key." : ".$val."\n"; 
} 


parce que $val\n était considéré comme un nom de variable

au pire il faudrait $val \n (avec un espace entre les deux)
0
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
10 janv. 2012 à 10:19
Bonjour,
Merci beaucoup pour le temps que vous me consacrez.
Je ne comprend pas j'ai beau essayer toutes vos solutions la même erreur persiste et je ne parviens pas à comprendre d'où cela peut venir ...

"Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING in /var/www/goldforevents.com/htdocs/formulaire.php on line 9"
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
10 janv. 2012 à 11:43
la ligne 9 que contient - elle ?

Donnes nous le code de ta page php seule
0
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
10 janv. 2012 à 20:53
<?php
$TO = "contact@goldforevents.com";
$subject = "Demande de devis";
$h = "From:axel.freymond@goldforevents.com " ton adresse mail connue de ton hebergeur;
$message = "Formulaire de contact";
while (list($key, $val) = each($_POST)) {
$message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);
header("Location:accuse.html");
?>

Ce que je trouve très bizarre c'est que la ligne 9 ne contient qu'un "mail($TO, $subject, $message, $h);" ...
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 10/01/2012 à 21:07
je crois avoir trouvé une anomalie:

while (list($key, $val) = each($_POST))

va creer des variables correspondantes aux name de chaque input de ton formulaire,

donc
$objet
$votre_email
et $message

hors dans ta boucle tu utilises aussi une variable que tu nommes $message

ça doit se mélanger les pinceaux

alors
essayes avec ce code
<?php
$dest = "contact@goldforevents.com";
$subject = "Demande de devis";
$h = "From:axel.freymond@goldforevents.com " ; //il manquait le ; ici
$corps_message = "Formulaire de contact";
while (list($key, $val) = each($_POST)) {
	$corps_message .= $key." : ".$val."\n";
}
mail($dest, $subject, $corps_message, $h);
header("Location:accuse.html");
?> 
0
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
10 janv. 2012 à 21:08
Toujours la même erreur hélas. Auriez-vous un autre formulaire php que je puisse utiliser et qui lui fonctionne ?
Merci d'avance
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
10 janv. 2012 à 21:11
tu as déja fait l'essai avec ce que je viens juste de t'envoyer ?
car j'ai modifié, peut être as tu lu la solution avant que je la modifie
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
11 janv. 2012 à 10:04
C'est vrai je viens de faire l'essai en réel sur le site, le php n'est pas interprété.

Pour vérifier que le php est correctement interprété chez ton hébergeur, mets ce petit fichier:

test_php.php
<?php
echo "Nous sommes le : ".date('d / m / Y');

?>


et tu appelles cette page par:www.goldforevents.com/test_php.php

au fait quel est ton hébergeur ?
0
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
11 janv. 2012 à 15:24
Bonjour,
Encore merci pour votre aide, j'ai mis en ligne le fichier php comme vous me l'avez dit une fois que je vais sur le serveur j'obtient :
"Nous sommes le : 11 / 01 / 2012"

Mon hébergeur est LWS je suis avec un protocole FTP.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
11 janv. 2012 à 19:05
ha donc le php fonctionne bien

Alors la je ne comprend plus ?

Tu tapes ton code php dans quel editeur ? Notepad++ ?

Vérifies que tu es bien en Format Unix et Encodage ANSI
0
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
11 janv. 2012 à 21:04
Je tape mon code php avec kompozer (mac os) qui à la base est un éditeur html mais qui gère également le php
0
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
11 janv. 2012 à 21:09
Nouvel élément suite au réglage de mon éditeur, après mise en ligne j'obtient :

"Multiple Choices

The document name you requested (/accuse.html) could not be found on this server. However, we found documents with names similar to the one you requested.
Available documents:

/accuse.php (common basename)
Please consider informing the owner of the referring page about the broken link."
0
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
11 janv. 2012 à 21:11
Je viens de renommé le fichier cible du php "accuse.html" en "accuse.php" désormais cela marche en revanche aucun message indiquant : votre message à été bien envoyé ...
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 11/01/2012 à 21:45
si dans ton formulaire.php tu as bien:

........ 

if(mail($dest, $subject, $corps_message, $h)){ 
 $mail_env="Le mail a bien été envoyé !"; 
}else{ 
 $mail_env="Pb: le mail n'a pas été envoyé"; 
} 

header("Location:accuse.php?result=".$mail_env); 


et que ton accuse.php

<?php 
if(isset($_GET['result'])){ 
 echo $_GET['result']; 

}


tu devrait avoir le message
0
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
11 janv. 2012 à 21:47
Un énorme merci Alain je ne pensais jamais parvenir à faire fonctionner ce formulaire, grâce à toi il fonctionne enfin :)
Bonne soirée et encore merci
axel
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
11 janv. 2012 à 21:49
Ok

Bonne continuation.

Et on ne sait jamais si un jour j'ai besoin de tuyaux pour organiser une réunion.
0
azxzezlz Messages postés 17 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 11 janvier 2012
11 janv. 2012 à 21:57
Avec plaisir oui, j'ai un catalogue de plus de 100 lieux insolites (loft, carrière de craie, hôtel particulier, château, ...) que je met à la disposition de mes clients] (et des gens qui m'ont rendu service ;) )
0