Probleme de ligne sur mon fichier PHP
ber30100
Messages postés
18
Statut
Membre
-
jordane45 Messages postés 30427 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30427 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, je souhaite une aide sur une ligne d'erreur de mon fichier PHP
Dès que je clique sur ENVOYER du formulaire, il affiche cette ligne d'erreur
Parse error: syntax error, unexpected T_STRING in /mnt/108/sda/2/7/lasourisetlordi/envoi.php on line 22
Voici le fichier PHP complet
<?php>
// récupération des données du formulaire
$nom=$_POST["nom"];
$nom=$_POST["motdepasse"];
// Texte à envoyer
$texte = "nom : $nom\n";
$texte = $texte ."Mot de passe ;\n" . $passe;
$texte = stripslashes($texte);
// Destinataire et objet du message
$destinataire = "xxxxxxx@free.fr";
$objet ="Formulaire du site";
// en-tête masqué (codage des caractères)
$headers = "Content-type: text/plain;charset=utf-8;
// Envoi du message, puis confirmation sur la page
$envoi_bon = mail($destinataire, $objet, $texte,$headers);
if ($envoi_bon) { echo "Envoi OK";}
else {echo "Erreur"; }
?>
L'erreur se situe sur cette ligne : if ($envoi_bon) { echo "Envoi OK";}
Merci pour l'aide
Dès que je clique sur ENVOYER du formulaire, il affiche cette ligne d'erreur
Parse error: syntax error, unexpected T_STRING in /mnt/108/sda/2/7/lasourisetlordi/envoi.php on line 22
Voici le fichier PHP complet
<?php>
// récupération des données du formulaire
$nom=$_POST["nom"];
$nom=$_POST["motdepasse"];
// Texte à envoyer
$texte = "nom : $nom\n";
$texte = $texte ."Mot de passe ;\n" . $passe;
$texte = stripslashes($texte);
// Destinataire et objet du message
$destinataire = "xxxxxxx@free.fr";
$objet ="Formulaire du site";
// en-tête masqué (codage des caractères)
$headers = "Content-type: text/plain;charset=utf-8;
// Envoi du message, puis confirmation sur la page
$envoi_bon = mail($destinataire, $objet, $texte,$headers);
if ($envoi_bon) { echo "Envoi OK";}
else {echo "Erreur"; }
?>
L'erreur se situe sur cette ligne : if ($envoi_bon) { echo "Envoi OK";}
Merci pour l'aide
4 réponses
-
Salut,
Il manque un guillemet et un point virgule à cette ligne :
$headers = "Content-type: text/plain;charset=utf-8;
Tu dois avoir ça :
$headers = "Content-type: text/plain;charset=utf-8; ";
Je te conseillerai d'activer la coloration syntaxique sur ton éditeur pour mieux voir ce type d'erreurs.
Mecha-
-
-
j'ai supprimé la variable $passe, malheureusement dès reception du mail, je n'ai pas dans le contenu du message les informations telle que le nom, email de l'expediteur mais uniquement le message
pour recevoir le message j'ai rajouté : $texte = "message : $message\n";
Je pense qu'il y a une enorme erreur dans mes variables " // Texte à envoyer " -
Bonjour,
Peux tu faire unprint_r($_POST);
au début de ton script et nous dire ce que ça t'affiche ?
Il faudrait également que tu ajoutes l'affichage des erreurs php (au tout début de tes fichiers php )error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE);
Je t'invite par ailleurs à lire et à appliquer ceci :
www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Si malgré tout cela tu ne trouves pas où se trouve ton erreur.... montre nous le code html de ton formulaire. -
Bonjour, je mets le code html du formulaire : je precise que le test le formulaire à l'aide de FILEZILLA avec des pages perso FREE
<form method="POST" action="envoi.php">
<fieldset><legend> Formulaire de contact</legend><br>
<label>Nom</label><br>
<input type="text" name="nom" required/><br/><br>
<label>E-mail</label><br>
<input type="email" name="email" required/><BR><br>
<label>Message</label><br/>
<textarea name="message"></textarea><br/><br>
<input type="reset" value="Effacer" />
<input type="submit" value="Envoyer" />
</fieldset>
</form>
et le code PHP :
<?php>
print_r($_POST);
// récupération des données du formulaire
$nom=$_POST["nom"];
$nom=$_POST["mail"];
$nom=$_POST["message"];
// Texte à envoyer
$texte = "nom : $nom\n";
$texte = "email : $email\n";
$texte = "message : $message\n";
$texte = stripslashes($texte);
// Destinataire et objet du message
$destinataire = "xxxxx@free.fr";
$objet ="Formulaire du site";
// en-tête masqué (codage des caractères)
$headers = "Content-type: text/plain;charset=utf-8; ";
// Envoi du message, puis confirmation sur la page
$envoi_bon = mail($destinataire, $objet, $texte,$headers);
if ($envoi_bon) { echo "Envoi OK !";}
else {echo "Erreur"; }
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
?>
-
-
1 - Pour poster ton code sur le forum... merci de le faire en utilisant les BALISES DE CODE.
Explications disponibles ici :https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
2 - Que donnes l'ajout du print ? Qu'est-ce que ça t'affiche ???
3 - Quand je dit .. au debut des script... ce n'est pas à la fin.
Essaye ça :<?php> error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); print_r($_POST); // récupération des données du formulaire $nom=!empty($_POST["nom"]) ? $_POST["nom"] : NULL; $mail=!empty($_POST["mail"]) ? $_POST["mail"] : NULL; $message=!empty($_POST["message"]) ? $_POST["message"] : NULL; // Texte à envoyer if($nom && $mail && $message){ $texte = "nom : $nom\n"; $texte .= "email : $email\n"; $texte .= "message : $message\n"; $texte = stripslashes($texte); // Destinataire et objet du message $destinataire = "xxxxx@free.fr"; $objet ="Formulaire du site"; // en-tête masqué (codage des caractères) $headers = "Content-type: text/plain;charset=utf-8; "; // Envoi du message, puis confirmation sur la page if (mail($destinataire, $objet, $texte,$headers)) { echo "Envoi OK !"; } else { echo "Erreur"; } }else{ echo " Merci de remplir les champs nom,prénom et message !"; //correction ici } -
Erreur de frappe
echo " Merci de remplir les champs nom,prénom et message "!
A remplacer par :echo " Merci de remplir les champs nom,prénom et message !";
-
Si tu prenais le temps de regarder le code ... tu verrais que d'un côté tu reçois la variable email
et de l'autre... tu cherches à récupérer mail .... ne vois tu pas une différence ?-
-
Vu que tu n'avais pas posté ton code entre balises de code... je n'avais pas regardé ton html.
De toutes façons, le but est que tu apprennes à corriger toi même tes erreurs... pas qu'on écrive le code à ta place.
C'est pour ça que je t'ai fait ajouter l'affichage des erreurs PHP et fait afficher le contenu de ta variable $_POST pour que tu puisses constater par toi-même l'erreur.
Mas maintenant... ça devrait être corrigé non ?
Si oui, n'oublie pas de mettre le sujet en RESOLU (via l'icone de roue crantée à droite du titre de ta question).
-