Récupération parametres de formulaire et les renvoyer par mail.

Vous avez un soucis de développement et ce n'est pas du ressort de notre support ? N'hésitez pas à soumettre vos petits soucis de développement et à vous entre aider par la même occasion.
Erik68
Messages : 35
Inscription : 23 juillet 2012 à 18:15

Bonjour à tous,

Je souhaiterai savoir comment l'administrateur d'un site pourrait récupérer les paramètres d'un formulaire par e-mail après sa validation, par l'internaute.

Par avance merci et bon dimanche.

Eric
Avatar de l’utilisateur
Elodie
Fondatrice / Responsable
Fondatrice / Responsable
Messages : 7938
Inscription : 2 avril 2010 à 20:14

Sujet de discussion qui n'a rien à voir avec le support technique, je le déplace alors dans la partie développement.
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Didier07
Messages : 291
Inscription : 15 mai 2011 à 09:44

Soit le formulaire est en methode post, alors les variables saisies sont dans $_POST['name_du_formumaire']
Soit le formulaire est en GET, alors les variables saisies sont dans $_GET['name_du_formumaire']

Dans le message du mail il faut mettre "mon texte ".$POST['mon_input']." suite de mon texte"

Didier
Erik68
Messages : 35
Inscription : 23 juillet 2012 à 18:15

merci Didier pour ta réponse,

Voila, j'ai bien bossé aujourd'hui sur cet affaire.

j'ai donc fait en sorte lors de la validation du formulaire par l'internaute que ma base de données s'enrichisse des paramètres du formulaire ( nom, prénom, date, type de service, mail et message).
En simultané, l'envoi d'un mail m'informant de cet envoi de formulaire. Tout marche super bien en local (localhost), mais en distant, je ne peux afficher mon formulaire. Le message d'erreur obtenu est le suivant:


"Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1045] Access denied for user 'MonMotdePasse'@'sql.franceserv.fr' (using password: NO)' in /home/httpd/e/r/i/erik68/tracece.franceserv.com/contact/connect.php:6 Stack trace: #0 /home/httpd/e/r/i/erik68/tracece.franceserv.com/contact/connect.php(6): PDO->__construct('mysql:host=sql....', 'MonMotdePasse', '', Array) #1 /home/httpd/e/r/i/erik68/tracece.franceserv.com/contact/index.php(3): require('/home/httpd/e/r...') #2 {main} thrown in /home/httpd/e/r/i/erik68/tracece.franceserv.com/contact/connect.php on line 6 ".

J'espère avoir un peu d'aide dès demain, je commence à être à la bourre.

Par avance, merci à tous.

Eric
Avatar de l’utilisateur
Elodie
Fondatrice / Responsable
Fondatrice / Responsable
Messages : 7938
Inscription : 2 avril 2010 à 20:14

Bonjour,
erik68 a écrit : Le message d'erreur obtenu est le suivant:
[...]
Access denied for user 'MonMotdePasse'@'sql.franceserv.fr
Il est dit que l'utilisateur "MonMotdePasse" n'a pas accès, c'est normal car ce n'est pas un utilisateur mais un mot de passe :)

Je pense qu'il vous faut correctement renseigner vos informations de connexion et vérifier que c'est bien votre nom d'utilisateur et votre mot de passe dans les bonnes variables de la configuration.
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Erik68
Messages : 35
Inscription : 23 juillet 2012 à 18:15

Bonsoir Elodie, merci pour cette rapide réponse.

voila une copie de mon fichier "connect.php"
Je ne sais si le pb vient de là, mais je commence à saturé à force de tourner en rond.
Pouvez-vous me dire si c'est correcte ?

Avatar de l’utilisateur
Elodie
Fondatrice / Responsable
Fondatrice / Responsable
Messages : 7938
Inscription : 2 avril 2010 à 20:14

Oui ça me semble juste.
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Erik68
Messages : 35
Inscription : 23 juillet 2012 à 18:15

bon, là je suis vraiment largué.

Voici mon fichier "connect.php"

"<?php

try
{
$options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=sql.franceserv.fr;dbname=erik68','MotDePasse ','',$options); // on se connecte avec les identifiants
}
catch (Exeption $e) // si la connexion echoue
{
die('Erreur :'.$e->getMessage()); // on affiche le message d'erreur
}


?>
Erik68
Messages : 35
Inscription : 23 juillet 2012 à 18:15

Et pour finir mon fichier "index.php"


"<?php

require('connect.php');


if(!empty($_POST))
{
$valid = true;

if(empty($_POST['nom']))
{
$valid = false;
$erreurnom = 'Indiquez votre nom';
}

if(empty($_POST['email']))
{
$valid = false;
$erreuremail = 'Indiquez votre email';
}

if(!empty($_POST['email']) && !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
$valid = false;
$erreuremail = 'Email invalide';
}

if(empty($_POST['message']))
{
$valid = false;
$erreurmessage = 'Indiquez votre message';
}

if($valid)
{
$nom = strip_tags($_POST['nom']);
\t$prenom = strip_tags($_POST['prenom']);
\t$date = strip_tags($_POST['date']);
\t$service = strip_tags($_POST['service']);
\t$ligne = strip_tags($_POST['ligne']);
$email = strip_tags($_POST['email']);
$message = strip_tags($_POST['message']);

$req = $bdd->prepare('INSERT INTO contact (nom,prenom,date,service,ligne,email,message) VALUES (:nom,:prenom,:date,:service,:ligne,:email,:message)');
$req->execute(array(':nom'=>$nom, ':prenom'=>$prenom, ':date'=>$date, ':service'=>$service, ':ligne'=>$ligne, ':email'=>$email, ':message'=>$message));
$req->closeCursor();

$to = 'sitece.trace@laposte.net';
$subject = 'Formulaire Evenement Indesirable';
$message = nl2br($message);
$headers = 'From:'.$email."\r
";
$headers .= 'MIME-version: 1.0'."\r
";
$headers .= 'Content-type: text/html; charset=utf-8'."\r
";

mail($to,$subject,$message,$headers);

$success = '<div class="success">Votre message a bien ete envoye.</div>';

}
}

?>

<!DOCTYPE html>
<html>
<meta charset="UTF-8">
<head>
<link rel="stylesheet" href="style.css" />
<title></title>
</head>
<body>
<div id="content">

<h2>RELATEZ UN EVENEMENT INDESIRABLE EN SERVICE</h2>

<?php if(isset($success)) echo $success;?>

<form action="index.php" method="post">

<p>
<label for="nom">Votre nom:</label>
<input type="text" name="nom" value="<?php if(isset($_POST['nom'])) echo $_POST['nom'];?>" />
<span class="error">
<?php if(isset($erreurnom)) echo $erreurnom;?>
</span>

<label for="nom">Votre Prenom:</label>
<input type="text" name="prenom" value="<?php if(isset($_POST['prenom'])) echo $_POST['prenom'];?>" />

<label for="nom">Date:</label>
<input type="text" name="date" value="<?php if(isset($_POST['date'])) echo $_POST['date'];?>" />

<label for="nom">Service:</label>
<input type="text" name="service" value="<?php if(isset($_POST['service'])) echo $_POST['service'];?>" />

<label for="nom">Ligne:</label>
<input type="text" name="ligne" value="<?php if(isset($_POST['ligne'])) echo $_POST['ligne'];?>" />

<label for="email">Votre email:</label>
<input type="text" name="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" />
<span class="error">
<?php if(isset($erreuremail)) echo $erreuremail;?>
</span>

<label for="message">Votre message:</label>
<span class="error">
<?php if(isset($erreurmessage)) echo $erreurmessage;?>
</span>
<textarea name="message"><?php if(isset($_POST['message'])) echo $_POST['message'];?>
</textarea>
</p>
<p>
<input type="submit" value="Envoyer" />
</p>
<div id="btn_retour"><a href="../admin/accueil.php">Retour à la page d'accueil</a></div>
<p>&nbsp; </p>

</form>

</div>
</body>
</html>

je croise les doigts. Merci
Avatar de l’utilisateur
Elodie
Fondatrice / Responsable
Fondatrice / Responsable
Messages : 7938
Inscription : 2 avril 2010 à 20:14

dbname = database name = nom de la base de données = "erik68_db1"

'MotDePasse' n'est pas exact, c'est le nom d'utilisateur qu'il faut mettre soit = erik68

Le champ vide entre guillemet simple ' ' c'est l'emplacement où mettre votre mot de passe
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Répondre