Savoir si son formulaire fonctionne.

Résolu/Fermé
Synerz Messages postés 1221 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 - Modifié par Synerz le 4/01/2016 à 10:51
Synerz Messages postés 1221 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 - 5 janv. 2016 à 10:37
Bonjour,

Je travail sur l'HTML et le PHP via un livre et j'attaque la partie formulaire sauf que j'ai un problème et un truc que je comprends pas trop.

Donc le livre me donne un exemple de formulaire à modifier selon nos "variables" et je l'ai fais.

Voila cette partie :
<?php
// Récupération des données du formulaire

$nom = $_post='nom';
$prenom = $_post='prenom';
$email = $_post='email';
$password = $_post='password' ;
$message = $_post='message';
$choix = $_post='choix' ;
$janvier = $_post='Janvier';
$février = $_post='Février';
$mars = $_post='Mars';
$conaissance = $_post='conaissance[]'

//Texte à envoyer

$texte = 'Monsieur $nom $prenom \n' ;
$texte = "Vous vous etes inscrit via l'adresse mail : $email \n" ;
$texte = 'Merci de noter votre mot de passe qui est : $password \n' ;
$texte = 'Nous avons bien pris en compte votre message qui est : $message \n';
$texte = 'Le jour choisi ainsi que les mois sont : $choix $janvier $février $mars \n';
$texte = 'Vous avez connu le site via : $connaissance ';


Ensuite il m'explique comment envoyer ces informations par mail et vérifier si l'envoie à fonctionné.
// Destinataire et object du message 

$destinataire = 'adresse.mail@gmail.com' ;
$object = 'Formulaire du site web' ;

// En-tête masqué (définition du codage)

$headers = 'content-type : text/plain charset=utf-8';

//Envoie du formulaire par mail ainsi que confirmation 

$envoi_bon = mail ($destinataire, $object, $texte, $hearders);
 
 if($envoi_bon) {echo'Envoi OK';}
 else {echo 'Erreur';}
?>

Mais ça fonctionne pas :/
Quand j'exécute mon formulaire avec Wamp ça me met " Parse error: syntax error, unexpected '$texte' (T_VARIABLE) in D:\wamp\www\WebApp1\Formulaire.php on line 17"

Soit la ligne qui corresponds à "$texte = 'Monsieur $nom $prenom \n' ;"
Puis je me demande si avec Wamp l'envoie du mail ce fais.
Puis normalement les informations récupérés sur un formulaire sont enregistrer sur une base de données.

Voila j’espère que vous pourrez m'aider :)

Un peu d'aide contre un topic résolu !

3 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 4/01/2016 à 12:26
Salut,

Si ton formulaire envoie les données en utilisant la méthode post, il faut récupérer ces variables en php via la superglobale $_POST.

Par exemple :
// recommandé (en utilisant l'opérateur ternaire)
$nom = isset($_POST['nom']) ? $_POST['nom'] : '';

// équivalent à (sans l'opérateur ternaire)
if (isset($_POST['nom'])) {
    $nom = $_POST['nom'];
} else {
    $nom = '';
}

// équivalent à (avec l'opérateur d'union nul) depuis PHP 7
$nom = $_POST['nom'] ?? '';


Bonne journée
2
Synerz Messages postés 1221 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 116
4 janv. 2016 à 15:53
Salut,

Je t'avoue que la je te suis pas :/
J'ai aucune idée de ce qu'est une opération ternaire ainsi que la différence entre les trois exemple que tu m'as mis.
0
Tatanos Messages postés 966 Date d'inscription lundi 24 mars 2008 Statut Membre Dernière intervention 26 mai 2016 156
4 janv. 2016 à 16:03
Ah oui j'avais même pas fait attention aux lignes au dessus :) merci Pitet
0
Tatanos Messages postés 966 Date d'inscription lundi 24 mars 2008 Statut Membre Dernière intervention 26 mai 2016 156
4 janv. 2016 à 11:14
Salut,

A la place de $texte = 'Monsieur $nom $prenom \n' ;
essaies : $texte = "Monsieur $nom $prenom \n"; //(avec des doubles quottes)

Je pense aussi qu'il faudrait échapper le backslash (mais c'est à vérifier)

Comme ceci : $texte = "Monsieur $nom $prenom \\n" ;
1
Synerz Messages postés 1221 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 116
4 janv. 2016 à 11:28
Bonjour,

Merci de me venir en aide :)

J'ai modifié les lignes comme ceci :
$texte = "Monsieur $nom $prenom \\n";
$texte = "Vous vous etes inscrit via l'adresse mail : $email \\n" ;
$texte = "Merci de noter votre mot de passe qui est : $password \\n" ;
$texte = "Nous avons bien pris en compte votre message qui est : $message \\n";
$texte = "Le jour choisi ainsi que les mois sont : $choix $janvier $février $mars \\n";
$texte = "Vous avez connu le site via : $connaissance ";

Mais ça change pas l'erreur.
0
Firoxyd Messages postés 97 Date d'inscription mardi 23 juin 2015 Statut Membre Dernière intervention 28 juin 2017 45
4 janv. 2016 à 16:15
Bonjour,

Il manque un point-virgule à la ligne 13.
0
Synerz Messages postés 1221 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 116
Modifié par Synerz le 4/01/2016 à 16:22
Bonjour,

Effectivement j'avais pas vu et en l'ajoutant j'ai des nouvelles erreurs qui sont :


Deuxième : "Notice: Undefined variable: hearders in D:\wamp\www\WebApp1\Formulaire.php on line 35"

Troisième :"Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in D:\wamp\www\WebApp1\Formulaire.php on line 35"

La troisième erreur vient surement de l'envoie du mail.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > Synerz Messages postés 1221 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017
4 janv. 2016 à 16:33
Bonjour,

Il suffit de lire le message d'erreur.... et de se relire ....
Tu as écris ceci :
$headers = 'content-type : text/plain charset=utf-8';

//Envoie du formulaire par mail ainsi que confirmation 

$envoi_bon = mail ($destinataire, $object, $texte, $hearders);

Ne vois tu pas une différence entre :$headers et $hearders ?
0
Synerz Messages postés 1221 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 116 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
4 janv. 2016 à 17:03
Bonjour,

Effectivement ce une erreur bete..

Pour la derniere c'est juste une histoire de port via ma box ou un truc a modifier via wamp ?
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > Synerz Messages postés 1221 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017
4 janv. 2016 à 20:45
Si tu travailles en LOCAL ... il faut paramétrer ton wamp avec un serveur SMTP....
Tu trouveras toute la doc nécessaire sur le net.....
0
Synerz Messages postés 1221 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 116
5 janv. 2016 à 10:37
ça roule merci je vais regarder ça
0