Parse error.... php pour envoi formulaire
Alain_42 Messages postés 5413 Statut Membre -
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.";
}
}
?>
- Parse error.... php pour envoi formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Expert php - Télécharger - Langages
- Fan error lenovo ✓ - <a href="https://forums.commentcamarche.net/forum/refroidissement-237">Forum Refroidissement</a>
- A javascript error occurred in the main process - <a href="https://forums.commentcamarche.net/forum/materiel-systeme-2">Forum Matériel & Système</a>
39 réponses
- 1
- 2
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.
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.";
}
}
<?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.";
}
}
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.";
}
}
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<?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.";
}
}
?>
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 ?
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;
}
}
?>
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" >
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'])) {
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 ?????????????????
<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>
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 ...
Tu utilises une version de PHP trop vieille: php.net/manual/fr/function.filter-var.php
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) ...
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
tu fait un fichier .htaccess dans lequel tu mets simplement
php 1
et tu le pose à la racine de ton hebergement
Cherche sur internet => Google : PHP 4 verification mail
.htaccess sans extension
il apparaitra en fichier caché dans ton ftp
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