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

flokocha Messages postés 1510 Date d'inscription   Statut Membre Dernière intervention   281
 
Salut

Une variable php débute par le caractère $ et non le caractère §.
0
llaume25 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
merci mais
g tout modifier mais il me met toujours la même erreur en ligne 3
?????????????????????????????????????????????

<?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.";
}
}
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Voir commentaires:
<?php 
//tu avait un espace entre tes $ et _POST
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  //que fait ce $prenom tout seul ? 
  $sujet="Formulaire de contact"; 
  $msg="Une nouvelle question est arrivée \n 
  Nom : $nom \n 
  Prenom : $prenom \n 
  Email : $email \n 
  Message : $message"; 
  //tu n'avait pas rectifié § par $ 
  $entete="From: $nom \n "; 
  $entete.="Reply-To: $email \n"; 
  //mail ($destinataire, $prenom, $sujet, $msg, $entete); //un argument de trop $prenom dans  la fct mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] ) 
  $env_mail=mail ($destinataire, $sujet, $msg, $entete); 
  //pour donner le message il faut verifier que mail s'est bien passé 
  if($env_mail){ 
   echo "Le mail a bien été envoyé." 
  }else{ 
   echo "Pb avec l'envoi du mail"; 
  } 
 } 
 else{ 
  echo "Vous n'avez pas rempli tous les champs."; 
 } 
}
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
excusez moi, je vous remercie tout d'abord de m'aider
le blème now c'est qu'il me met lorsque que je modifie le script comme précedement un nouvelle erreur en ligne 19 on avance du moins vous avancez
une aide serait encore la bienvenue
Parse error: syntax error, unexpected T_ELSE, expecting ',' or ';' in /mnt/112/sda/1/c/marilynsenechal/php/formulairephp.php on line 19
<?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";
$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 ";
$entete.="Reply-To: $email \n";
//mail ($destinataire, $sujet, $msg, $entete); ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
$env_mail=mail ($destinataire, $sujet, $msg, $entete);

17 if($env_mail){
18 echo "Le mail a bien été envoyé."
19 }
else{
echo "Pb avec l'envoi du mail";
}
}
else{
echo "Vous n'avez pas rempli tous les champs.";
}
}
?>
0

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

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
<?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";
		$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 ";
		$entete.="Reply-To: $email \n";
		//mail ($destinataire, $sujet, $msg, $entete); ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
		$env_mail=mail ($destinataire, $sujet, $msg, $entete);

		 if($env_mail){
			echo "Le mail a bien été envoyé."; //la il manquait un ;
		}
		else{
			echo "Pb avec l'envoi du mail";
		}
	}
	else{
		echo "Vous n'avez pas rempli tous les champs.";
	}
}
?>
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
alors dsl mais j'ai bien modifier comme précedemment
now il me fait aucune erreur impeccable mais quand je cjique sur envoyer il m'ouvre une page blanche sans echo est en fait ya rien dans mon courrier
alain_42 mon sauveur quand dites vous ?
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Salut !
Vers quelle page renvoi ton formulaire, et quelle méthode utilise t'il ?

<?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 />';
	}
	elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
		$errorMsgs .= 'Email incorrect.<br />';
	}
	//---
	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
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
remplaces cette ligne
if(isset($_POST) AND !empty($_POST)) {

par

if(isset($_POST['envoyer'])) {


et verifies que dans ton formulaire tu ait bien le bouton submit comme ceci:

<input type="submit" name="envoyer" value="Envoyer" />


et dans la balise form:

<form name="form1" method="post"  action="formulairephp.php" >
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
slt alain_42 quelle belle journéé pour du php !
en fait cette ligne que tu me dit de remplacer n'existe pas dans mon script
remplaces cette ligne
if(isset($_POST) AND !empty($_POST)) {

par

if(isset($_POST['envoyer'])) {
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
pour joo_s
la méthode utiliser est Post et renvoi bien sur llla page formulairephp
g essayé ton code quand je clique sur envoyer avec toutes mes variables rempli il m'ouvre une page blanche avec Vous avez oubliez le nom.
Vous avez oubliez le prénom.
Vous avez oubliez l'email.
Vous avez oubliez le sujet.
Vous avez oubliez le message.
alors que tout est rempli ?????????????????
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Montre nous ton formulaire(html) !

PS : Je dirai que t'as surement dû oublier l'attribut name de tes champs input !!!
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
<form id="form1" name="form1" method="post" action="../php/formulairephp.php"mailto;llaume200581@free.fr;">
<table width="323" border="0" align="center">
<tr>
<td width="317"><div align="justify"><span class="Style12">Nom : </span></div></td>
</tr>
<tr>
<td><div align="justify">
<input name="textfield" type="text" size="53" />
</div></td>
</tr>
<tr>
<td><div align="justify"><span class="Style12">Prénom : </span></div></td>
</tr>
<tr>
<td><div align="justify">
<input name="textfield2" type="text" size="53" />
</div></td>
</tr>
<tr>
<td><div align="justify"><span class="Style12">Email : </span></div></td>
</tr>
<tr>
<td><div align="justify">
<input name="textfield3" type="text" size="53" />
</div></td>
</tr>
<tr>
<td><div align="justify"><span class="Style12">Sujet : </span></div></td>
</tr>
<tr>
<td><div align="justify">
<input name="textfield4" type="text" size="53" />
</div></td>
</tr>
<tr>
<td><div align="justify"><span class="Style12">Message : </span></div></td>
</tr>
<tr>
<td><div align="justify"><span class="Style12">
<textarea name="textarea" cols="50" rows="5"></textarea>
</span></div></td>
</tr>
</table>
<table width="317" border="0" align="center">
<tr>
<td width="151"><div align="center"><img src="../image/souris accueil.jpg" width="133" height="46" /></div></td>
<td width="150">
<div align="left">
<input type="submit" name="Submit" value="Envoyer" />
</div></td>
</tr>
</table>
<p class="Style2"> </p>
</form>
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
1 - Enlève "mailto;llaume200581@free.fr;" de l'attribut "action", tu dois mettre seulement le nom de la page ou le script php se trouve.

2 - Tout tes champs "input" se nomment "textfield", donc c'est normal que lors de l'envoi, tes variiables n'existent pas !

Donc, pour le nom par exemple, tu dois mettre ceci !
<input name="nom" type="text" size="53" /> 
ça donnera naissance a la variable $_POST['nom']

Pour le prénom, tu dois avoir ...
<input name="prenom" type="text" size="53" /> 
Ce qui donnera naissance a la variable $_POST['prenom']

Etc ...
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
g tout modifier comme ta ditet Fatal error: Call to undefined function: filter_var() in /mnt/112/sda/1/c/marilynsenechal/php/formulairephp.php on line 23
0
Freedomsoul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   97
 
C'est pourtant clair, ta fonction : filter_var() est indéfinie !

Tu utilises une version de PHP trop vieille: php.net/manual/fr/function.filter-var.php
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
donc faut tout que change ?
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Oui, mets a jour ton wampserver ou Easyphp !
Et donc ça veut dire que tu travaille en local(sur ton PC), donc tu ne pourra non plus utiliser la fonction "mail", car elle doit être configuré avant d'être utilisé !
Sinon, si tu travaille pas en local, et si tu ne force pas l'utilisation d'une ancienne version de PHP, alors ton hébergeur est loin d'être a jour (bizarre) ...
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
en fait je suis pas doué comme vs
je travail avec dreamweaver v.8
je travail pas en local directement en ligne
heberge sous free mon site est en ligne déjà ya plus que le formulaire qui marche pas
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
pour forcer le php5 chez free:

tu fait un fichier .htaccess dans lequel tu mets simplement
php 1


et tu le pose à la racine de ton hebergement
0
Freedomsoul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   97
 
Ouaip, je crois bien que free n'est pas encore passé en PHP 5 ? pas sur... ça fait longtempsque j'ai pas vu... mais bon ça signifie qu'il va falloir vérifier manuellement le mail !
Cherche sur internet => Google : PHP 4 verification mail
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
c'est pourtant sur ce forum que j'ai trouvé l'info
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
alain_42 j'ai bien creer un fichier php.htaccess à la racine de mon site ben tjrs la même erreur
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
ce n'est pas un fichier php.htaccess mais un fichier

.htaccess sans extension

il apparaitra en fichier caché dans ton ftp
0
llaume200581 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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;
}
}
?>
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Voici une fonction pour vérifier l'email ...
https://www.commentcamarche.net/faq/855-php-verifier-le-format-d-une-adresse-mail

Tu peux aussi créer ou utiliser d'autres fonctions, pour vérifier le nom et prénom (alphabétique) !
0