Parse error.... php pour envoi formulaire
j'ai un soucis concernant un script en php pour l'envoi d'un formulaire :
Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE or '$' in /mnt/112/sda/1/c/marilynsenechal/php/formulairephp.php on line 3
et franchement j'arrive pas à voir ce qui ne va pas mes variables sont bien déclarer et la syntaxe est bonne non?
j'envois mon script en espérant une aide pour faire marcher mon formulaire svp
<?php
if(isset(§_POST) && isset(§ _POST['nom']) && isset(§ _POST['prenom']) && isset(§ _POST['email']) && isset(§ _POST['sujet']) && isset(§ _POST['message'])){
extract(§_POST);
if(!empty(§nom) && !empty(§prenom) && !empty(§email) && !empty(§sujet) && !empty(§message)){
§destinataire="llaume200581@free.fr";
§prenom
§sujet="Formulaire de contact";
§msg="Une nouvelle question est arrivée \n
Nom : §nom \n
Prenom : §prenom \n
Email : §email \n
Message : §message";
§entete="From: §nom \n Reply-To: §email";
mail (§destinataire, §prenom, §sujet, §msg, §entete);
echo "Le mail a bien été envoyé."
}
else{
echo "Vous n'avez pas rempli tous les champs.";
}
}
?>
39 réponses
Un script PHP destiné à l’envoi d’un formulaire signale une erreur de syntaxe: Parse error, unexpected T_STRING, expected T_VARIABLE ou '$' sur la ligne 3, liée à des variables mal nommées. Des erreurs proviennent de l’usage du symbole § à la place de $, de noms de variables comme §nom et de vérifications isset($_POST) mal formulées, provoquant l’arrêt du script. Plusieurs réponses conseillent de corriger les noms des champs et d’utiliser un bouton d’envoi permettant d’accéder à $_POST['envoyer'], tout en renforçant les vérifications et la sécurité des données. En pratique, il faut supprimer les caractères problématiques, mapper correctement nom, prénom, email, sujet et message, et effectuer une vérification préalable des données avant l’envoi.
-
envoi en mode non html
nomme cette page xxxxxx.php
cela répond à ta question ou toput est sur la même page<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Ton titre de page</title> </head> <body> <!-- la tu peux mettre ton taleau image --> <?php //partie traitement de l'envoi du mail ////fonctions php (on met les fonctions au début du script, elles peuvent être appelées depuis n'importe ou dans la page //fonction verif adresse mail function VerifierAdresseMail($adresse){ $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#'; if(!preg_match($Syntaxe,$adresse)){ //si pas valide on retourne true return true; }else{ return false; } } //fin fonctions php ////init des varaibles de travail $affichage_formulaire=true; //// //envoi du mail if(isset($_POST) AND !empty($_POST)) { extract($_POST); $errorMsgs = ''; //------------- if(!isset($nom) OR empty($nom)) { $errorMsgs .= 'Vous avez oublié le nom.<br />'; }elseif(strlen($nom) > 40) { $errorMsgs .= 'Nom incorrect.<br />'; } //--- if(!isset($prenom) OR empty($prenom)) { $errorMsgs .= 'Vous avez oubliez le prénom.<br />'; }elseif(strlen($prenom) > 40) { $errorMsgs .= 'Prénom incorrect.<br />'; } // Verif mail--- if(!isset($email) OR empty($email)) { $errorMsgs .= 'Vous avez oubliez l\'email.<br />'; }elseif(VerifierAdresseMail($email)){ //si mail pas ok alors message d'erreur $errorMsgs .= 'Adressse email non valide !.<br />'; } //fin verif mail if(!isset($sujet) OR empty($sujet)) { $errorMsgs .= 'Vous avez oubliez le sujet.<br />'; }elseif(strlen($sujet) > 200) { $errorMsgs .= 'Sujet trop long.<br />'; } //--- if(!isset($message) OR empty($message)) { $errorMsgs .= 'Vous avez oubliez le message.<br />'; } elseif(strlen($message) > 2000) { $errorMsgs .= 'Message trop long.<br />'; } //-------------- fin des verifs if(empty($errorMsgs)) { //il n'y a pas d'erreur //donc on ne reaffichera pas le formulaire $affichage_formulaire=false; $entete = "From: \"Ton nom\"<ton_adresse_mail_a_toi>"."\n"; //car le mail est envoyé depuis le serveur qui heberge ton site $entete .= "Reply-To: ".$email."\n"; $entete .= "MIME-Version: 1.0"."\n"; $entete .= "Content-Type: text/plain; charset=\"iso-8859-1\""."\n"; $entete .= "Content-Transfer-Encoding: 8bit"."\n"; $destinataire = 'lxxxxxxxxxxxxx@xxxxxxx.xx'; $sujetMail = 'Formulaire de contact'; $msg = "Une nouveau formulaire est arrivé". "\n"; $msg .= "Nom : ".$nom."\n"; $msg .= "Prenom : ".$prenom."\n"; $msg .= "Email : ".$email."\n"; $msg .= "Sujet : ".$sujet."\n"; $msg .= "Message : ".$message; $env_mail = mail($destinataire, $sujetMail, $msg, $entete); if($env_mail) { echo "Le mail a bien été envoyé."; } else { echo "Pb avec l'envoi du mail"; } }else { echo $errorMsgs; } } if($affichage_formulaire){ //sous entendu =true ?> <!-- ici tu mets ton formulaire html et dans la balise form tu mets pour que la page s'appelle elle même <form name="form1" method="post" action="" > --> <?php } //fin if affichage formulaire ?> </body> </html> -
regardes sur Google la fonction mail de php tu verra qu'il n'y a pas tous ces parametres tu as mis:
mail($destinataire, $sujetMail, $msg, $entete, $message)
que fait ce $mesage à la fin ??
et pourquoi vouloir envoyer en HTML, \n fait très bien les retours à la ligne si l'entête est codée correctement -
c $message quand jlenleve y marche mais pk??????
-
je cherchen'y a t-il pas un soucis avec free
-
Je revient vous voir concernant l'envoi de mai au format
erreur
Warning: mail() [function.mail]: Nombre de parametres incorrects in /mnt/112/sda/1/c/marilynsenechal/php/formulairephp.php on line 69
Pb avec l'envoi du mail
$destinataire = 'llaume200581@free.fr';
$sujetMail = 'Formulaire de contact';
$message ='<html><head><title>Un titre ici</title></head><body>Un message de test</body></html>';
$msg = 'Une nouveau formulaire est arrivée \n';
$msg .= 'Nom : '.$nom.' \n';
$msg .= 'Prenom : '.$prenom.' \n';
$msg .= 'Email : '.$email.' \n';
$msg .= 'Sujet : '.$sujet.'\nMessage : '.$message;
$entete = 'From: $nom \n';
$entete .= 'Reply-To: '.$email.'\n';
$entete .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$env_mail = mail($destinataire, $sujetMail, $msg, $entete, $message);
if($env_mail) {
echo "Le mail a bien été envoyé.";
} -
Joos:
A ma connaissance, une page HTML ne peut communiquer directement avec un script PHP
Et pourtant si ==>
dans ta page html si tu as un formulaire dont action="une_page.php" cela appeler bien une page php en lui envoyant les valeurs du formulaire
par contre llaume200581:
je crée page2.html j'ai deux tableau
-tableau 1 avec image
-tableau2 j'aimerai que s'affiche dans ce tableau "le mail à bien été envoyé"
possible ?
NON
Il faut que ta page soit en php et tu mets tout sur la page:
- le tableau image
- le script qui traite l'envoi du mail
- le formulaire qui ne devra plus être affiché après l'envoi du mail
- mais remplacé par le message envoi du mail OK -
je me suis mal exprimé je reprends
dans une page1.html j'ai deux tableaux
-tableau1 avec une image
-tableau 2 mon formulaire html avec le bouton envoyer qui a comme action formulaire.php
je clique sur envoyer il s'affiche sur une page blanche "le mail à bien été envoyé"
normal tu me diras
je crée page2.html j'ai deux tableau
-tableau 1 avec image
-tableau2 j'aimerai que s'affiche dans ce tableau "le mail à bien été envoyé" qui provient de mon"formulairephp.php
possible ? -
j'aimerai rediriger dans un tableau html après envoi du formulaire
j 'explique :
dans une page1.html j'ai deux tableaux
-tableau1 avec une image
-tableau 2 mon formulaire html avec le bouton envoyer qui a comme action formulaire.php
je clique sur envoyer il s'affiche sur une page blanche "le mail à bien été envoyé"
normal tu me diras
je crée page2.html j'ai deux tableau
-tableau 1 avec image
-tableau2 j'aimerai que s'affiche dans ce tableau "le mail à bien été envoyé"
possible ? -
si tu lit bien tout ce qu j'ai mis, tu verrais que c 'est exactement ce que g mis et ça marche d'ailleurs mais ce que je n'arrive pas à faire c 'est ce que ce soit rediriger dans un tableau html ciblé ?
-
Ben j'avais compris que la redirection ne fonctionnait pas, car j'ai déjà eu un problème avec la fonction header, et il fallait mettre un espace entre le ":" et l'url, un espace que t'as omis de mettre, mais si ça marche sans, alors tant mieux !
appart ça !
ce soit rediriger dans un tableau html ciblé ?
Explique, parce tableau html ciblé ne veut rien dire pour moi ...
-
-
je m'occupe d'une autre chose pour l'instant
j'aimerai rediriger dans un tableau html bien ciblé après envoi du formulaire php
alors g bien trouvé des codes sur les forum qui marche
Remplace la ligne :
if($envoi) echo"Le mail a bien été envoyé !";
par
if($envoi) header("location:ma_page_html.html");
mais je n'arrive pas ce que ce soit rediriger dans un tableau html ciblé
si quelqu'un pourrait et je suis pas un mec du genre à ne pas regarder dans les forums
si je demande c que jsuis coincé
merci -
ok je vais chercher encore merci pour ton aide
-
j'abuse peut-être mais jsuis depuis 2 jous sur l'envoi htlm serieux pouvez vs m'aider
voici la mise en forme du mail lors de la réception
Une nouvelle question est arriv?e \nNom : ccccccccccccccccccccc \nPrenom : cvx \nEmail : guillonet@hotmail.fr \nSujet : cccccccccccccc\nMessage : cccccccccccccc
possible d'enlever le \n et possible de revenir à la ligne pour chaque il me semblait que <u>i> suffisait ?
genre
un nouveau formulaire vient d' arrivé
non :cccccccccccccccccccc
prénom :cccccc
Email ; gui...
..............
voila mon script php
<?php
/////fonctions php (on met les fonctions au début du script, elles peuvent être appelées depuis n'importe ou dans la page
//fonction verif adresse mail
function VerifierAdresseMail($adresse)
{
$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
if(!preg_match($Syntaxe,$adresse))
return true;
else
return false;
}
/////
if(isset($_POST) AND !empty($_POST)) {
extract($_POST);
$errorMsgs = '';
//-------------
if(!isset($nom) OR empty($nom)) {
$errorMsgs .= 'Vous avez oubliez le nom.<br />';
}
elseif(strlen($nom) > 40) {
$errorMsgs .= 'Nom incorrect.<br />';
}
//---
if(!isset($prenom) OR empty($prenom)) {
$errorMsgs .= 'Vous avez oubliez le prénom.<br />';
}
elseif(strlen($prenom) > 40) {
$errorMsgs .= 'Prénom incorrect.<br />';
}
// Verif mail---
if(!isset($email) OR empty($email)) {
$errorMsgs .= 'Vous avez oubliez l\'email.<br />';
}elseif(VerifierAdresseMail($email)){
//si mail pas ok alors message d'erreur
$errorMsgs .= 'Adressse email non valide !.<br />';
}
//fin verif mail
if(!isset($sujet) OR empty($sujet)) {
$errorMsgs .= 'Vous avez oubliez le sujet.<br />';
}
elseif(strlen($sujet) > 200) {
$errorMsgs .= 'Sujet trop long.<br />';
}
//---
if(!isset($message) OR empty($message)) {
$errorMsgs .= 'Vous avez oubliez le message.<br />';
}
elseif(strlen($message) > 2000) {
$errorMsgs .= 'Message trop long.<br />';
}
//--------------
if(empty($errorMsgs)) {
$destinataire = 'lxxxxxxxxxxxxx@xxxxxxx.xx';
$sujetMail = 'Formulaire de contact';
$msg = 'Une nouveau formulaire est arrivée \n';
$msg .= 'Nom : '.$nom.' \n';
$msg .= 'Prenom : '.$prenom.' \n';
$msg .= 'Email : '.$email.' \n';
$msg .= 'Sujet : '.$sujet.'\nMessage : '.$message;
$entete = 'From: $nom \n';
$entete .= 'Reply-To: '.$email.'\n';
$env_mail = mail($destinataire, $sujetMail, $msg, $entete);
if($env_mail) {
echo "Le mail a bien été envoyé.";
}
else {
echo "Pb avec l'envoi du mail";
}
}
else {
echo $errorMsgs;
}
}
?>nv -
g compris qu'il faut envoyer l email au format html mais sérieux c du chinois ?
-
En fait je viens de recevoir un email hihihi
merci alain et joo_s pour m'avoir aider
néanmoins voici la mise en forme du mail lors de la réception
Une nouvelle question est arriv?e \nNom : ccccccccccccccccccccc \nPrenom : cvx \nEmail : guillonet@hotmail.fr \nSujet : cccccccccccccc\nMessage : cccccccccccccc
possible d'enlever le \n et possible de revenir à la ligne pour chaque il me semblait que <br> suffisait ?
genre
un nouveau formulaire vient d' arrivé
non :cccccccccccccccccccc
prénom :cccccc
Email ; gui...
..............
merci je vous fout la paix après-
ça vient surement des headers que t'as oublier de préciser !
https://www.vulgarisation-informatique.com/mail.php
http://www.siteduzero.com/tutoriel-3-35146-e-mail-envoyer-un-e-mail-en-php.html
-
-
bonjour
alors ca marche nikel mais le gros hic c'est que je ne reçoit rien dans ma boite email alors qu'il me dit bien le mail à été envoyé ? -
quand clique sur envoyer page blanche et 'Adressse email non valide
-
function VerifierAdresseMail($adresse) { $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#'; if(!preg_match($Syntaxe,$adresse)) return true; else return false; }
Ajoute un "!" avant le preg_match, comme ci-dessus !
Si ça marche toujours pas, c'est que ça vient de la version de PHP que t'utilise, parce que chez moi ça marche normal !
Essaye en créant un fichier .htaccess, et mets ce qui suit dedans !SetEnv PHP_VER 5
PS : Il faut mettre ce fichier a la racine de ton site !
-
-
<?php /////fonctions php (on met les fonctions au début du script, elles peuvent être appelées depuis n'importe ou dans la page //fonction verif adresse mail function VerifierAdresseMail($adresse) { $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#'; if(preg_match($Syntaxe,$adresse)) return true; else return false; } ///// if(isset($_POST) AND !empty($_POST)) { extract($_POST); $errorMsgs = ''; //------------- if(!isset($nom) OR empty($nom)) { $errorMsgs .= 'Vous avez oubliez le nom.<br />'; } elseif(strlen($nom) > 40) { $errorMsgs .= 'Nom incorrect.<br />'; } //--- if(!isset($prenom) OR empty($prenom)) { $errorMsgs .= 'Vous avez oubliez le prénom.<br />'; } elseif(strlen($prenom) > 40) { $errorMsgs .= 'Prénom incorrect.<br />'; } // Verif mail--- if(!isset($email) OR empty($email)) { $errorMsgs .= 'Vous avez oubliez l\'email.<br />'; }elseif(VerifierAdresseMail($email)){ //si mail pas ok alors message d'erreur $errorMsgs .= 'Adressse email non valide !.<br />'; } //fin verif mail if(!isset($sujet) OR empty($sujet)) { $errorMsgs .= 'Vous avez oubliez le sujet.<br />'; } elseif(strlen($sujet) > 200) { $errorMsgs .= 'Sujet trop long.<br />'; } //--- if(!isset($message) OR empty($message)) { $errorMsgs .= 'Vous avez oubliez le message.<br />'; } elseif(strlen($message) > 2000) { $errorMsgs .= 'Message trop long.<br />'; } //-------------- if(empty($errorMsgs)) { $destinataire = 'llaume200581@free.fr'; $sujetMail = 'Formulaire de contact'; $msg = 'Une nouvelle question est arrivée \n'; $msg .= 'Nom : '.$nom.' \n'; $msg .= 'Prenom : '.$prenom.' \n'; $msg .= 'Email : '.$email.' \n'; $msg .= 'Sujet : '.$sujet.'\nMessage : '.$message; $entete = 'From: $nom \n'; $entete .= 'Reply-To: '.$email.'\n'; $env_mail = mail($destinataire, $sujetMail, $msg, $entete); if($env_mail) { echo "Le mail a bien été envoyé."; } else { echo "Pb avec l'envoi du mail"; } } else { echo $errorMsgs; } } ?> -
je suis completement paumé dans mon script j'essaye je doit pas mettre au bonne endroit pourrait tu m'indiquer ou dois mettre la fontion
$adresse=htmlentities($_POST['adresse']);
if(VerifierAdresseMail($adresse))
echo '<p>Votre adresse est valide.</p>';
else
echo '<p>Votre adresse e-mail n\'est pas valide.</p>'; -
rien y fait alain g tout bien fait
-
freedomsoul g essaye avec du php 4 ci contre quand je clique il me met adresse incorrect pourtant bonne
ca me soul freedom je commence à m'enerver tout seul
<?php
if(isset($_POST) AND !empty($_POST)) {
extract($_POST);
$errorMsgs = '';
//-------------
if(!isset($nom) OR empty($nom)) {
$errorMsgs .= 'Vous avez oubliez le nom.<br />';
}
elseif(strlen($nom) > 40) {
$errorMsgs .= 'Nom incorrect.<br />';
}
//---
if(!isset($prenom) OR empty($prenom)) {
$errorMsgs .= 'Vous avez oubliez le prénom.<br />';
}
elseif(strlen($prenom) > 40) {
$errorMsgs .= 'Prénom incorrect.<br />';
}
//---
if(!isset($email) OR empty($email)) {
$errorMsgs .= 'Vous avez oubliez l\'email.<br />';
}
function EmailOK($nlmail)
{
return( ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_'a-z{|}~]+'.
'@'.
'[-!#$%&\'*+\\/0-9=?A-Z^_'a-z{|}~]+\.'.
'[-!#$%&\'*+\\./0-9=?A-Z^_'a-z{|}~]+$',
$nlmail) );
}
//si mail pas ok alors message d'erreur
if(!EmailOK($nlmail)) {echo "adresse E-Mail incorrecte"; exit;}
//---
if(!isset($sujet) OR empty($sujet)) {
$errorMsgs .= 'Vous avez oubliez le sujet.<br />';
}
elseif(strlen($sujet) > 200) {
$errorMsgs .= 'Sujet trop long.<br />';
}
//---
if(!isset($message) OR empty($message)) {
$errorMsgs .= 'Vous avez oubliez le message.<br />';
}
elseif(strlen($message) > 2000) {
$errorMsgs .= 'Message trop long.<br />';
}
//--------------
if(empty($errorMsgs)) {
$destinataire = 'llaume200581@free.fr';
$sujetMail = 'Formulaire de contact';
$msg = 'Une nouvelle question est arrivée \n';
$msg .= 'Nom : '.$nom.' \n';
$msg .= 'Prenom : '.$prenom.' \n';
$msg .= 'Email : '.$email.' \n';
$msg .= 'Sujet : '.$sujet.'\nMessage : '.$message;
$entete = 'From: $nom \n';
$entete .= 'Reply-To: '.$email.'\n';
$env_mail = mail($destinataire, $sujetMail, $msg, $entete);
if($env_mail) {
echo "Le mail a bien été envoyé.";
}
else {
echo "Pb avec l'envoi du mail";
}
}
else {
echo $errorMsgs;
}
}
?>
- 1
- 2