Page 1 sur 1

Problème création fichier php pour formulaire contact.

Posté : 28 mars 2008, 01:32
par nhk
Bonjour, je voudrais mettre en place un formulaire de contact pour mon site perso.
Je ne m'y connais pas trop, mais j'ai trouvé un site pas mal qui m'a permis de faire un formulaire sur mesure. (http://www.phpform.org/)

J'ai essayer de faire plusieurs fichiers php, avec différent tuto que j'ai pu trouver sur le net, mais je ne sais pas comment les adapter au fichier html créé par phpform.

Je reçoit bien le mail sur ma boite, mais il est vide de tout texte.

Je voudrait quelque chose de simple, avec juste une phrase de confirmation que le message est bien parti et un retour automatique sur la page précédente.

voici mon fichier html:

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Contact</title> <link rel="stylesheet" type="text/css" href="view.css" media="all"> <script type="text/javascript" src="view.js"></script> </head> <body id="main_body" > <img id="top" src="top.png" alt=""> <div id="form_container"> <h1><a>Contact</a></h1> <form id="form_38763" class="appnitro" method="post" action=""> <div class="form_description"> <h2>Contact</h2> <p>Pour me contacter, veuillez utiliser le formulaire ci-dessous:</p> </div> <ul > <li id="li_1" > <label class="description" for="element_1">*Nom </label> <span> <input id="element_1_1" name= "element_1_1" class="element text" maxlength="255" size="8" value=""/> <label>Prénom</label> </span> <span> <input id="element_1_2" name= "element_1_2" class="element text" maxlength="255" size="14" value=""/> <label>Nom</label> </span> </li> <li id="li_2" > <label class="description" for="element_2">Société </label> <div> <input id="element_2" name="element_2" class="element text medium" type="text" maxlength="255" value=""/> </div> </li> <li id="li_7" > <label class="description" for="element_7">*E-mail </label> <div> <input id="element_7" name="element_7" class="element text medium" type="text" maxlength="255" value=""/> </div> </li> <li id="li_3" > <label class="description" for="element_3">Site Web </label> <div> <input id="element_3" name="element_3" class="element text medium" type="text" maxlength="255" value="http://"/> </div> </li> <li id="li_9" > <label class="description" for="element_9">*Objet </label> <div> <select class="element select medium" id="element_9" name="element_9"> <option value="1" selected="selected">Renseignements</option> <option value="2" >Devis Reportage</option> <option value="3" >Autre</option> </select> </div> </li> <li id="li_4" > <label class="description" for="element_4">(Autre) </label> <div> <input id="element_4" name="element_4" class="element text medium" type="text" maxlength="255" value=""/> </div> </li> <li id="li_5" > <label class="description" for="element_5">*Message </label> <div> <textarea id="element_5" name="element_5" class="element textarea medium"></textarea> </div> </li> <li class="section_break"> <h3>*=Champs requis</h3> <p></p> </li> <li class="section_break"> <h3>Merci.</h3> <p></p> </li> <li class="buttons"> <input type="hidden" name="form_id" value="38763" /> <input id="saveForm" class="button_text" type="submit" name="Envoyer" value="Envoyer" /> </li> </ul> </form> </div> <img id="bottom" src="bottom.png" alt=""> </body> </html>

Je n'aime pas faire le noob et poster une demande comme cela, mais çà fait quelques jours que je tourne en rond sans y arriver. Je trouve cette éditeur en ligne de formulaire très pratique et je voudrai juste savoir comment faire mon fichier php pour pouvoir l'adapter lorsque j'en ai besoin.

Merci à vous.

Posté : 28 mars 2008, 09:14
par zeus
Modération :
nhk, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

Posté : 28 mars 2008, 09:36
par Hywan
Bonjour,

zeus a été gentil, il ne t'a pas modéré pour ta demande. Si j'ai bien compris, tu nous demandes de te faire le script c'est bien ça :twisted: ?
Plus sérieusement, jette un oeil à la fonction mail() de PHP.

Posté : 28 mars 2008, 10:16
par zeus
zeus a été gentil, il ne t'a pas modéré pour ta demande.
Zeus a été modérateur. S'il n'a pas estimé utile d'en remettre une couche, c'est pour une bonne raison. ;)

Posté : 28 mars 2008, 13:49
par Hywan
:)

Posté : 28 mars 2008, 14:12
par nhk
Bonjour, merci pour vos réponse.

Je ne demandais pas directement de me faire le fichier, mais il est vrai que je n'étais pas bien clair dans ma demande.
J'aime bien savoir ce que je fais, même si dans ce domaine je n'y connais pas grand chose.

J'ai commencé à regarder comment utiliser la fonction mail() de php, mais en faite je ne sais pas si c'est vraiment ce qu'il me faut.

Lorsque je crée mon fichier php il prend le dessus sur mon fichier html (dans mon premier post) et je reçoit dans le mail le formulaire mais vide. (je pense que ça vient du faite que j'ai remise la mise en page html dans le php)

Comme dit plus haut je bidouille plus que je n'ai de connaissance, mais je voudrai garder mon fichier html (créé par l'éditeur en ligne) et simplement faire que lorsque la personne clique sur "envoyer" le message parte sur ma boite mail et qu'un message "message partie" s'affiche sur l'écran avant un retour automatique sur la page d'accueil du site.

Est ce qu'il faut que je passe par un fichier de traitement en php pour faire çà? Sachant que je ne veut pas passer par le logiciel mail par defaut.

Merci.

Posté : 28 mars 2008, 18:59
par Fififox
Pour faire simple, on va prendre quatre fichiers distincts, un avant.htm, un pendant.php, un apres_ok.htm et un apres_erreur.htm ;)

Dans le "avant", tu mets le code que tu nous montre dans ton 1er post et dans la balise <form ...>, tu donnes la valeur "apres.php" à l'attribut action. Je sais pas à quel point tu t'y connais en html donc j'explique a cas où: l'attribut action indique la page à qui les données du formulaire vont être envoyées.

Ensuite, dans le fichier "pendant", on va mettre le code php qui va envoyer le mail:
je ne vais pas t'écrire le script mais plutôt t'expliquer en gros ce qu'il faut faire...

- Vérifier que des données ont été envoyées en "POST"
- Vérifier que tous les champs obligatoires sont remplis
- Préparer les "headers" du mail
- Préparer le corps avec les variables qui correspondent aux champs du formulaire
- Envoyer le mail et récupérer le résulat
- Envoyer au navigateur le header "Location: apres_ok.htm" ou "Location: apres_erreur.htm" suivant le résultat de la fonction mail

Puis, dans le fichiers apres_ok, il suffit de mettre le texte de confirmation d'envoi du mail (et une balise méta avec un delai qui renvoie à la page de ton choix, si besoin est).

Pour finir, dans apres_erreur, il faut prévoir un message signalant un problème et renvoyant sur la page du formulaire.

Voilà, j'ai essayé d'aller à l'essentiel et je te laisse le plaisir de chercher comment faire tout ça mais ne t'inquiète pas, y'a plein de tutoriels sur les mails et les variables POST :)


Bonne chance ;)
A+

PS: Bien sûr, on aurait pu faire tout ça dans un seul fichier mais c'est plus clair en en employant plusieurs ;)

Posté : 02 avr. 2008, 17:36
par nhk
Merci beaucoup, grâce à toi j'ai compris un peu plus comment tout cela fonctionnait.

J'ai réussit à mettre en place mon formulaire mais il me reste juste un petit problème au niveau de la vérification de certains éléments du contenu.

Je pense que je vais arriver à corriger tout çà.

Encore merci.

:)