Probleme de ligne sur mon fichier PHP

ber30100 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 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
A voir également:

4 réponses

MechaStreisand Messages postés 163 Date d'inscription   Statut Membre Dernière intervention   323
 
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
1
ber30100 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
merci j'ai corrigé l'erreur, après l'envoi j'ai un Envoi OK, mais pas de reception dans ma messagerie je ne comprend pas pourquoi
0
MechaStreisand Messages postés 163 Date d'inscription   Statut Membre Dernière intervention   323
 
La variable $passe n'existe pas (tu as copié/collé $nom).
Vérifie la config smtp de la fonction mail() si tu es en local ou utilise PHPMailer.
0
ber30100 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
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 "
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Peux tu faire un
print_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.
0
ber30100 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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);
?>
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
}

0
ber30100 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
il est indiqué : Parse error: syntax error, unexpected '!', expecting ',' or ';' in /mnt/108/sda/2/7/lasourisetlordi/envoi.php on line 34
0
MechaStreisand Messages postés 163 Date d'inscription   Statut Membre Dernière intervention   323 > ber30100 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Le message est assez claire ...
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 !";
0
ber30100 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Après avoir rectifié ton erreur de frappe, il est indiqué : Array ( [nom] => bruno [email] => bggg@gmail.com [message] => eeree ) Merci de remplir les champs nom,prénom et message !
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 ?
0
ber30100 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Désolé etant novice, je vois qu'il y a une erreur, comme je suis tes instructions, donc je me fis à toi
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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).
0