Récupération des données formulaire

Résolu/Fermé
mailbox13630 Messages postés 127 Date d'inscription vendredi 1 décembre 2006 Statut Membre Dernière intervention 16 avril 2017 - 12 mai 2009 à 14:41
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 - 12 mai 2009 à 15:33
Bonjour,

Comment faut-il procéder pour récupérer les données d'un formulaire xhtml?

J'ai lu qu'il fallait créer une page php, (traitement.php) php...que je ne maitrise pas du tout (encore ;-))

Mais ensuite, comment le contenu qui s'affiche sur cette page php me parvient-il?

Si vous connaissez un bon tuto...Il est le bienvenu.

Voici mon code (tout simple):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" media="screen" type="text/css" title="style" href="style.css" />
<title>Formulaire de contact</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="post" action="traitement.php">
<p>
<label for="Nom">Votre nom: </label><input type="text" nom="Nom" id="Nom" maxlength="35" /></p><br/>
<label for="Prénom">Votre prénom: </label><input type="text" nom="Prénom"/></p><br/>
<label for="Adresse">Adresse: </label><input type="text" nom="Adresse"/></p><br/>
<label for="Code postal">Code postal: </label><input type="text" nom="Code postal"/></p><br/>
<label for="Ville">Ville: </label><input type="text" nom="Ville"/></p><br/>
<label for="Pays">Pays: </label><input type="text" nom="Pays"/></p><br/>
<label for="Commentaire">Commentaire: </label><br/><textarea name="Commentaire" id="Commentaire" rows="20" cols="40"/></textarea><br/><br/>
<input type="submit" value="Envoyer"></p>
</form>


</body>
</html>

Merci d'avance

2 réponses

Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 63
12 mai 2009 à 14:43
Code de traitement.php :
<?php 
$nom = $_POST['Nom'];
$prenom = $_POST['Prenom'];
.........
?>

Après, tu fais ce que tu veux des variables $nom, $prenom ....

Sinon, l'attribut à affecter au input est "name" et pas "nom".

Encore une petite remarque, ne met pas d'accent dans les "name"
0
mailbox13630 Messages postés 127 Date d'inscription vendredi 1 décembre 2006 Statut Membre Dernière intervention 16 avril 2017 4
12 mai 2009 à 14:54
Merci le Normand,

L'américaine te remercie ;-))

Voici mon code corrigé:

<form method="post" action="traitement.php">
<p>
<label for="nom">Votre nom: </label><input type="text" name="nom" id="nom" maxlength="35" /></p><br/>
<label for="prenom">Votre prénom: </label><input type="text" name="prenom"/></p><br/>
<label for="adresse">Adresse: </label><input type="text" name="adresse"/></p><br/>
<label for="code postal">Code postal: </label><input type="text" name="code postal"/></p><br/>
<label for="ville">Ville: </label><input type="text" name="ville"/></p><br/>
<label for="pays">Pays: </label><input type="text" name="pays"/></p><br/>
<label for="commentaire">Commentaire: </label><br/><textarea name="commentaire" id="commentaire" rows="20" cols="40"/></textarea><br/><br/>
<input type="submit" value="Envoyer"></p>
</form>


Le code php conformément à tes instructions:

<?php
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$adresse = $_POST['adresse'];
$code_postal = $_POST['code_postal'];
$ville = $_POST['ville'];
$pays = $_POST['pays'];
$commentaire = $_POST['commentaire'];
?>


Lorsque je cliquer sur "envoyer", j'arrive sur une page blanche.
Que dois-je faire ensuite?
0
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 63 > mailbox13630 Messages postés 127 Date d'inscription vendredi 1 décembre 2006 Statut Membre Dernière intervention 16 avril 2017
12 mai 2009 à 14:57
Héhé, en effet, la tu as récupérer tes données, après tout dépend ce que tu veux en faire ^^

En admettant que tu veuille les afficher, il te faut, dans traitement.php :
<?php 
$nom = $_POST['nom']; 
$prenom = $_POST['prenom']; 
$adresse = $_POST['adresse']; 
$code_postal = $_POST['code_postal']; 
$ville = $_POST['ville']; 
$pays = $_POST['pays']; 
$commentaire = $_POST['commentaire']; 

//Affichage des données
echo $nom;
echo $prenom;
.......
?>

Après tout dépend de ce que tu veux faire, envoyer un mail ? les utiliser autrement ?
0
mailbox13630 Messages postés 127 Date d'inscription vendredi 1 décembre 2006 Statut Membre Dernière intervention 16 avril 2017 4 > Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010
12 mai 2009 à 14:59
Je souhaiterai les recevoir par email mais que je puisse faire une mise en forme minimum pour une bonne lisibilité (ne pas récupérer les données mises "à la queue leu leu", ce qui est illisible et que j'ai déjà vu)
0
mailbox13630 Messages postés 127 Date d'inscription vendredi 1 décembre 2006 Statut Membre Dernière intervention 16 avril 2017 4 > Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010
12 mai 2009 à 15:00
Quand tu dis "les utiliser autrement", je pense que fais allusion à une collection des données dans une base...
J'en suis pas encore là :-(
0
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 63 > mailbox13630 Messages postés 127 Date d'inscription vendredi 1 décembre 2006 Statut Membre Dernière intervention 16 avril 2017
12 mai 2009 à 15:01
Je te prépare un petit truc, laisse moi quelques minutes ;)
0
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 63
12 mai 2009 à 15:08
Voila, ça devrait à peu près être ce que tu veux, tu peux bien sûr l'adapter. Je t'ai rajouter un champ "mail" pour que tu puisse éventuellement répondre au message ;)
<?php

	$nom = $_POST['nom']; 
	$prenom = $_POST['prenom']; 
	$adresse = $_POST['adresse']; 
	$code_postal = $_POST['code_postal']; 
	$ville = $_POST['ville']; 
	$pays = $_POST['pays']; 
	$commentaire = $_POST['commentaire'];
	$mail_contact = $_POST['mail'];
	
	//voici la version Mine 
	$headers = "MIME-Version: 1.0\r\n"; 
 
	//ici on détermine le mail en format texte 
	$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; 
 
	//ici on détermine l'expediteur et l'adresse de réponse 
	$headers .= "From: $nom\r\nReply-to : <$mail_contact>\nX-Mailer:PHP"; 
 
	$subject="Message venant du site"; 
	$destinataire="ton adresse mail"; 
	$body	="Message venant de : ".$prenom." ".$nom.".\n";
	$body	.= "Habitant ".$adresse.".\n";
	$body	.= "Code postal : ".$code_postal.".\n";
	$body	.= "Ville : ".$ville.".\n";
	$body	.= "Pays : ".$pays.".\n";
	$body	.= "Le message est le suivant : ".$commentaire.".\n";

	//Envoie du mail
	mail($destinataire,$subject,$body,$headers);
?>

0
mailbox13630 Messages postés 127 Date d'inscription vendredi 1 décembre 2006 Statut Membre Dernière intervention 16 avril 2017 4
12 mai 2009 à 15:14
Ouhaou!

Merci pour ton temps!

Je rencontre le message suivant:

Notice: Undefined index: mail in C:\wamp\www\test\formulaires\traitement.php on line 11

Warning: mail() [function.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 C:\wamp\www\test\formulaires\traitement.php on line 32

La ligne 11 c'est celle-ci:
$mail_contact = $_POST['mail'];

La ligne 32, celle-ci:
mail($destinataire,$subject,$body,$headers);

Est-ce-que ça vient du fait que je teste en local?
0
mailbox13630 Messages postés 127 Date d'inscription vendredi 1 décembre 2006 Statut Membre Dernière intervention 16 avril 2017 4
12 mai 2009 à 15:15
Pour info, j'utilise WAMP
0
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 63 > mailbox13630 Messages postés 127 Date d'inscription vendredi 1 décembre 2006 Statut Membre Dernière intervention 16 avril 2017
12 mai 2009 à 15:16
Pour la ligne 11, c'est parce que j'ai rajouté un champ mail, mais il faut que tu rajoute un input dans ton fichier ou se trouve le formulaire ;)

Pour l'autre, je pense que c'est parce que tu teste en local.
0
antoine > mailbox13630 Messages postés 127 Date d'inscription vendredi 1 décembre 2006 Statut Membre Dernière intervention 16 avril 2017
12 mai 2009 à 15:21
yaninho a raison,

ca marche pas parce que tu testes en local, si tu le balance sur ton ftp, ca devrait marcher.
0
mailbox13630 Messages postés 127 Date d'inscription vendredi 1 décembre 2006 Statut Membre Dernière intervention 16 avril 2017 4 > Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010
12 mai 2009 à 15:27
Merci mille fois, je vais pouvoir décliner tout ça ;-)

Sais-tu (question idiote) comment procéder pour que s'affiche un message du type "Votre message a été correctement envoyé...." accompagné de "retour au site" par exemple?

Sur le principe, je crois comprendre qu'il doit y avoir un ...if....(une fois que le message est envoyé) et un echo....pour le retour au site.

Dis-moi que je suis sur la bonne piste ;-)



PS: je suis une adepte du site du zero
0