Parse error.... php pour envoi formulaire

llaume25 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
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

llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
rien y fait alain g tout bien fait
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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>';
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Salut !
Ben écoute, pour éviter tout problème, mieux vaux que t'essaye de trouve une solution pour activer(utiliser) la version 5 de PHP ... car tôt ou tard, tu va rencontrer d'autres problème, et peut être même des failles de sécurité ...
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
<?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;
}
}
?>
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
quand clique sur envoyer page blanche et 'Adressse email non valide
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
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 !
0

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

Posez votre question
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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é ?
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Vérifie dans le dossier SPAM(Courrier indésirable) de ta boite !
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
ç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
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
g compris qu'il faut envoyer l email au format html mais sérieux c du chinois ?
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Ben suffit d'ajouter l'option dans les headers qui précise que l'email est au format html !
Puis le contenu de l'email doit être en html, or, tu peut utiliser les balises ...
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Ben ça se voit que t'as pas vraiment chercher avec les deux sites que je t'ai citer plus haut, pourtant c'est clair !
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
ok je vais chercher encore merci pour ton aide
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
header('Location: ma_page_html.html');
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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é ?
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
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 ...
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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 ?
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Ben il suffit de faire la redirection vers la page2.html, et d'écrire dans le tableau 2 le message que tu veux !
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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 ?
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
A ma connaissance, une page HTML ne peut communiquer directement avec un script PHP !

Donc tu reconvertit page2.html en page2.php, et la, peut être que tu pourra faire quelque chose, et dans ce cas, page2.php deviendra formulaire.php (car non nécessaire d'avoir les deux pages) !
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Communiquer, c'est envoyer et recevoir, parler et comprendre, sinon ça ne sert a rien de savoir faire qu'une seule tache parmi ces deux dernières :) !
une page html peut envoyer des informations, mais ne peut en recevoir !
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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é.";
}
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
je cherchen'y a t-il pas un soucis avec free
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
c $message quand jlenleve y marche mais pk??????
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Pas besoin d'avoir un niveau avancée en anglais pour pouvoir comprendre les messages d'erreur.
:)
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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>
0