8437 sujets

Développement web côté serveur, CMS

Bonjour à tous,

N'étant pas un expert en php je viens solliciter un peu d'aide Smiley rolleyes

J'ai créé un formulaire dont voici le code :

<form class="formulaire" method="post" action="envoi.php">
<fieldset>
<legend>Formulaire de contact</legend>
<label for="email">
<input type="text" value="Email..." class="text" id="email"/>								
</label>
<label for="nom">
<input type="text" value="Nom..." class="text" id="nom"/>								
</label>
<label for="societe">
<input type="text" value="Société..." class="text" id="societe"/>								
</label>
<label for="message">
<textarea cols="3" rows="3" class="text" id="message">Votre Message</textarea>
</label>
<input type="image" class="submit" name="submit" src="medias/envoi.png" alt="Submit" title="Submit" />
</fieldset>
</form>


J'aurais besoin d'aide pour "coder" le fichier envoi.php, afin de pouvoir récupérer les données envoyées sur mon mail.

Merci d'avance,

Julien
Modifié par jd-webdesign (03 Jun 2010 - 14:41)
Bonjour,

Il existe de nombreux tutoriels sur le net qui expliquent comment créer et gérer un formulaire de contact.
Bonjour,

Merci pour votre réponse Smiley smile

J'ai cherché mais les scripts que je trouve ne m'inspirent pas grande confiance.

Je vais re-rechercher.

Julien
Bonjour,

Tu veux dire que tu souhaites récupérer les données du formulaire et les envoyer sur un mail perso que tu auras prédéfini ?
Il existe également des prêts à l'emploi des programmes visant à créer et personnaliser des formulaires Web. Exemple peut être trouvé ici php tutorial. Ou vous pouvez rechercher le code prêt.
Si ça peut aider et si tu n'as pas trouvé entre-temps, voici un truc que j'ai trouvé je ne sais plus où, simplissime mais qui fonctionne :

<?php
$TO = "adresse_mail_destinataire";
$h = "From: " . $TO;
$subject = "sujet_du_mail";
$message = "";
while (list($key, $val) = each($HTTP_POST_VARS)) {$message .= "$key : $val\n";}
mail($TO, $subject, $message, $h);
Header("Location: http://www.page_de_debranchement.html");
?>

où il faut bien entendu adapter adresse_mail_destinataire, sujet_du_mail et page_de_debranchement. Tu enregistres ça sous le nom que tu veux (envoimail.php par ex) et dans le formulaire tu mets :
<form method="post" action=envoimail.php>

Le seul pb est que les caractères accentués sont transmis sous forme de petits losanges noirs contenant un ?, donc surement un pb d'encodage (le site est en utf8 et je suppose qu'il aurait fallu le dire aussi dans le script php mais ça je sais pas faire. Si quelqu'un a une idée je suis preneur.

Noilà en espérant que ça aide quelqu'un...
Merci piour l'info mais alors il faut utiliser quoi à la place de $HTTP_POST_VARS ? $_POST ?

Ceci dit pour l'encoage j'ai trouvé entre-temps, et j'ai modifié le script comme suit :

<?php
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'To: adresse_mail_destinataire' . "\r\n";
$headers .= 'From: adresse_mail_destinataire' . "\r\n";
$headers .= 'Content-Type: text/plain; charset=UTF-8' . "\r\n";
$headers .= 'Content-Transfer-Encoding: 8bit' . "\r\n";
$subject = "sujet_du_mail";
$message = "";
while (list($key, $val) = each($HTTP_POST_VARS)) {if(!empty($val)) {$message .= "$key : $val\n";}}
mail($TO, $subject, $message, $headers);
Header("Location: http://www.page_de_debranchement.html");
?>

ce qui a l'avantage de non seulement gérer parfaitement les accents (et cédilles qui sont souvent oubliées dans les posts sur les forums) mais qui en outre ne m'envoie que les champs remplis, ça fait plus propre.

Reste à comprendre comment remplacer proprement $HTTP_POST_VARS par $_POST...

Ha ben je viens de faire un essai au pif et en fait il suffit de remplacer l'un par l'autre dans le script, et c'est tout bon Smiley smile

Merci pour l'info.

Et pour fignoler je me suis aussi amusé à "initialiser le texte du mail dans la variable $message = "";, avec un \n à la fin pour faire propre Smiley smile