Problème codage formulaire PHP
Résolu
azxzezlz
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
azxzezlz Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
azxzezlz Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
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");
?>
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:
- Problème codage formulaire PHP
- Whatsapp formulaire opposition - Guide
- Codage ascii - Guide
- Formulaire de réclamation facebook - Guide
- Codage binaire - Guide
- Formulaire de reclamation instagram - Guide
20 réponses
avec:
formulaire.html:
formulaire.php
et accuse.php
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.
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.
en mettant un echo pour voir
ça donne quoi?
<?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?
tu as bien mis cette partie en commentaires par /* */
est ce que dans ton editeur ton script est bien en encodage ANSI ?
/* 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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<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"); ?>
essayes comme ça:
parce que $val\n était considéré comme un nom de variable
au pire il faudrait $val \n (avec un espace entre les deux)
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)
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"
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"
la ligne 9 que contient - elle ?
Donnes nous le code de ta page php seule
Donnes nous le code de ta page php seule
<?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);" ...
$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);" ...
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
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"); ?>
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
car j'ai modifié, peut être as tu lu la solution avant que je la modifie
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
et tu appelles cette page par:www.goldforevents.com/test_php.php
au fait quel est ton hébergeur ?
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 ?
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.
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.
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
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
Je tape mon code php avec kompozer (mac os) qui à la base est un éditeur html mais qui gère également le php
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."
"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."
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é ...
si dans ton formulaire.php tu as bien:
et que ton accuse.php
tu devrait avoir le 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);
et que ton accuse.php
<?php if(isset($_GET['result'])){ echo $_GET['result']; }
tu devrait avoir le message
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
Bonne soirée et encore merci
axel
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 ?