Parse error.... php pour envoi formulaire

Fermé
llaume25 Messages postés 2 Date d'inscription vendredi 17 août 2012 Statut Membre Dernière intervention 18 août 2012 - 17 août 2012 à 22:49
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 25 août 2012 à 21:38
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 lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 280
17 août 2012 à 23:07
Salut

Une variable php débute par le caractère $ et non le caractère §.
0
llaume25 Messages postés 2 Date d'inscription vendredi 17 août 2012 Statut Membre Dernière intervention 18 août 2012
18 août 2012 à 11:16
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 18/08/2012 à 11:52
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 mercredi 26 janvier 2011 Statut Membre Dernière intervention 25 août 2012
20 août 2012 à 18:55
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
20 août 2012 à 20:38
<?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 mercredi 26 janvier 2011 Statut Membre Dernière intervention 25 août 2012
20 août 2012 à 22:49
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 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
21 août 2012 à 04:01
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 21/08/2012 à 09:40
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 mercredi 26 janvier 2011 Statut Membre Dernière intervention 25 août 2012
21 août 2012 à 11:46
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 mercredi 26 janvier 2011 Statut Membre Dernière intervention 25 août 2012
21 août 2012 à 12:06
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 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 21/08/2012 à 12:40
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 mercredi 26 janvier 2011 Statut Membre Dernière intervention 25 août 2012
21 août 2012 à 12:43
<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 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 21/08/2012 à 13:01
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 mercredi 26 janvier 2011 Statut Membre Dernière intervention 25 août 2012
21 août 2012 à 16:17
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 lundi 9 mai 2011 Statut Membre Dernière intervention 17 avril 2013 97
Modifié par Freedomsoul le 21/08/2012 à 16:22
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 mercredi 26 janvier 2011 Statut Membre Dernière intervention 25 août 2012
21 août 2012 à 16:52
donc faut tout que change ?
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 21/08/2012 à 17:28
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 mercredi 26 janvier 2011 Statut Membre Dernière intervention 25 août 2012
21 août 2012 à 17:32
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 août 2012 à 18:02
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 lundi 9 mai 2011 Statut Membre Dernière intervention 17 avril 2013 97
21 août 2012 à 18:02
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 août 2012 à 18:24
c'est pourtant sur ce forum que j'ai trouvé l'info
0
llaume200581 Messages postés 26 Date d'inscription mercredi 26 janvier 2011 Statut Membre Dernière intervention 25 août 2012
21 août 2012 à 18:53
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 août 2012 à 18:56
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 mercredi 26 janvier 2011 Statut Membre Dernière intervention 25 août 2012
21 août 2012 à 19:16
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 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 21/08/2012 à 20:11
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