Probleme de ligne sur mon fichier PHP

Fermé
ber30100 Messages postés 18 Date d'inscription jeudi 10 mai 2018 Statut Membre Dernière intervention 14 mai 2018 - 14 mai 2018 à 07:19
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 14 mai 2018 à 16:14
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 162 Date d'inscription jeudi 19 avril 2018 Statut Membre Dernière intervention 14 août 2018 323
14 mai 2018 à 09:37
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 jeudi 10 mai 2018 Statut Membre Dernière intervention 14 mai 2018
14 mai 2018 à 11:20
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 162 Date d'inscription jeudi 19 avril 2018 Statut Membre Dernière intervention 14 août 2018 323
14 mai 2018 à 11:51
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 jeudi 10 mai 2018 Statut Membre Dernière intervention 14 mai 2018
Modifié le 14 mai 2018 à 12:26
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
14 mai 2018 à 14:01
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 jeudi 10 mai 2018 Statut Membre Dernière intervention 14 mai 2018 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
14 mai 2018 à 14:12
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
Modifié le 14 mai 2018 à 15:22
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 jeudi 10 mai 2018 Statut Membre Dernière intervention 14 mai 2018
14 mai 2018 à 15:02
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 162 Date d'inscription jeudi 19 avril 2018 Statut Membre Dernière intervention 14 août 2018 323 > ber30100 Messages postés 18 Date d'inscription jeudi 10 mai 2018 Statut Membre Dernière intervention 14 mai 2018
14 mai 2018 à 15:20
Le message est assez claire ...
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
14 mai 2018 à 15:21
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 jeudi 10 mai 2018 Statut Membre Dernière intervention 14 mai 2018
14 mai 2018 à 15:31
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
14 mai 2018 à 15:37
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 jeudi 10 mai 2018 Statut Membre Dernière intervention 14 mai 2018
14 mai 2018 à 15:39
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
14 mai 2018 à 16:14
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