IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Creer un Formulaire html

  1. #1
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 38
    Par défaut Creer un Formulaire html
    Bonjour à tous,

    Je souhaite creer un formulaire html et m'envoyer le resultat sur ma messagerie. Seulement voilà quand je teste mon formulaire rien ne se passe. J'ai regardé un peu partout sur le net et j'entend parlé de script CGI .... mais impossible d'en trouver un ...... J'y connais pas grand chose ... alors si vous avez une petite idée .... merci de votre aide !

    le code de mon formulaire
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <html>
     
    <head>
    <meta name="GENERATOR" content="Microsoft FrontPage 6.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Enregistrement d</title>
    </head>
     
    <body>
    <FORM method=post action="mailto:monmail@domaine.fr">
    Enregistrement d'un utilisateur
    <TABLE BORDER=0>
    <TR>
    	<TD>Nom</TD>
    	<TD>
    	<INPUT type=text name="nom">
    	</TD>
    </TR>
     
    <TR>
    	<TD>Prénom</TD>
    	<TD>
    	<INPUT type=text name="prenom">
    	</TD>
    </TR>
     
    <TR>
    	<TD>Commentaires</TD>
    	<TD>
    	<TEXTAREA rows="3" name="commentaires">
    	Tapez ici vos commentaires</TEXTAREA>
    	</TD>
    </TR>
     
    <TR>
    	<TD COLSPAN=2>
    	<INPUT type="submit" value="Envoyer">
    	</TD>
    </TR>
    </TABLE>
    </FORM>
    </body>
     
    </html>
    Encore merci d'avance.

    Tequila_PF

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Par défaut
    Là il ne s'agit que d'un formulaire en html. Valider ce formulaire ne va avoir pour seul effet que d'appeller le document ciblé par le formulaire, en lui passant les données des différents champs (balises <input ...>).

    Ici, le document ciblé est "mailto:monmail@domaine.fr" ; ce qui signifie qu'en pratique, la validation du formulaire aura pour effet d'ouvrir un mail via le client de messagerie de l'internaute. (Mais je doute qu'il existe un client de messagerie qui soit capable de traiter efficacement les données d'un formulaire.)

    La solution serait que le document ciblé par le formulaire puisse prendre en compte ces données et effectuer le traitement voulu avec. Un tel document peut être un script CGI, un document php... mais il faut de toute façon qu'il s'agisse de quelque chose situé côté serveur (ça signifie en particulier il faut qu'il y ait un serveur : n'utiliser que des pages html ne sera pas suffisant)

    Avant de donner plus de détails il faudra savoir si tu veux :
    -que la validation du formulaire envoie directement un mail sur ta messagerie
    -que la validation du formulaire ouvre un mail chez l'internaute, et que celui ci ait le choix de l'envoyer ou non (après l'avoir éventuellement modifié)
    (pour être rigoureux, on pourrait préciser que dans ce cas, on devrait pouvoir se passer de procédures côté serveur, en utilisant à la place du javascript ; mais je ne suis pas sûr que ça soit vraiment une solution...)

    Accessoirement, pour pouvoir fournir une réponse pertinente, il serait bon de savoir si tu as accès à un serveur qui prenne en compte le php (éventuellement les procédures cgi, mais je n'ai jamais utilisé ces dernières)

  3. #3
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 38
    Par défaut
    Merci de m'avoir répondu ....

    moi je souhaite uniquement que les infos de mon formulaire me parviennent sur ma messagerie comme un email tout simple .... en cliquant sur le bouton "envoyer"

    concernant mon hebergeur, j'arrive pas a trouver quelqu'un qui me reponde vraiment ... Je suppose que son serveur accepte le php ... mais le big probleme c'est que j'y connais rien en php ! J'ai bien tenté de prendre des sources sur internet et de tester mais je sais pas trop ou mettre le fichier ... pour tout dire il me faudrai un truc un peu comme une recette de cuisine toute simple !

    Bien à toi.
    Tequila_PF

  4. #4
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Bonjour,

    c'est comme te l'a dit _ash_ avec le mailto, le message passe par le logiciel de messagerie du client (généralement outlook ou Thunderbird) pour t'être ensuite renvoyé.
    L'alternative est d'envoyer le formulaire dans un script sur ton serveur qui se chargeras d'envoyer le mail, dans ce cas ce n'est plus une question html

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Par défaut
    Une solution simple consisterait à remplacer le "mailto:monmail@domaine.fr" du formulaire par "envoi_mail.php" ; et de créer un tel fichier "envoi_mail.php" (qui se situerait dans le même dossier que le fichier contenant le formulaire html) qui contiendrait quelque chose comme :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?php
    //Préparation des variables
    $destinataire = 'monmail@domaine.fr';
    $headers = 'From '.$_REQUEST['nom'].' '.$_REQUEST['prenom']."\r\n";
    $headers .= "Mime-Version: 1.0\r\n";
    $headers .= "Content-type: text/plain; charset=utf-8\r\n";
    $headers .= "\r\n";
     
    //Envoi du mail proprement dit
    mail($destinataire, 'un visiteur a envoyé un commentaire', $_REQUEST['commentaires'], $headers);
     
    //Redirection de l'internaute
    header("Pragma: no-cache");
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: index.php");
    ?>

    C'est un peu spartiate ; on pourrait surement rajouter des détails (par exemple un message d'erreur si le mail n'est pas parti) ; mais ça devrait marcher.

    Il y a cependant en particulier 2 éléments à noter :
    -Certains hébergeurs interdisent l'utilisation de la fonction mail()
    -Pour que la redirection puisse fonctionner, il faut que le fichier envoi_mail.php commence par la balise '<?php' (en particulier il ne doit y avoir ni espace ni saut de ligne avant)

  6. #6
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 38
    Par défaut
    Bon voilà les nouvelles ....
    J'ai creer à l'aide du bloc note un fichier avec ton code ... j'ai retiré au début du fichier la ligne vierge ainsi que les espaces. Ce fichier je l'ai nommé, suivant tes conseils "envoi_mail.php" apres j'ai fait la modif dans action en remplacant mon adresse email par le nom du fichier en php .....

    Après mise à jour sur le serveur, j'ai effectué un test mais quand je "clic" sur mon bouton envoyer je tombe sur une page "impossible d'afficher la page .... l'adresse est incorrecte....". Mon navigateur semble vouloir auvrir la page "envoi_mail.php" ????

    J'ai oublié de dire qu'etant donné mes faibles connaissances, et bien j'utilise frontpage .... oui je sais c'est pas top mais on fait ce que l'on peu ....

    grand besoin de tes connaissances ....
    Dans tous les cas .... merci à vous deux pour vos réponses et particulierement a toi _ash_ pour m'avoir envoyé du code !
    Tequila_PF

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Par défaut
    C'est normal que ton navigateur tente de charger la page "envoi_mail.php" : c'est ce que l'attribut "action" de la balise <form> lui demande de faire.

    L'erreur "adresse incorrecte" semble signifier que les 2 fichiers (envoi_mail.php ; ainsi que celui contenant le formulaire) ne sont pas dans le même dossier.
    Y remédier devrait régler ton problème.

    (Par ailleurs, j'ai arbitrairement décidé que la redirection devrait mener sur une page index.php. Ceci est indépendant du problème que tu évoques ; mais précisons que pour que le redirection fonctionne, il faudrait qu'une telle page existe (ou que tu fasses pointer la redirection sur une autre page))

  8. #8
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 38
    Par défaut
    Rien a faire ca ne fonctionne pas malgré toutes les recommandations de _ash_ que j'ai suivi à la lettre.... et pourtant mon fichier php et ma page html sont bien au même niveau que mes autres pages ... je me retrouve toujours avec la meme page d'erreur !!!

    je pense que je n'arriverai jamais a faire ce foutu formulaire !!!!!!!
    J'ai passé ma journée a bidouiller .... ce soir c'est la déprime ....
    merci de votre aide.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Par défaut
    Si l'erreur que tu obtiens est de type "404 ; page introuvable", c'est très étrange.
    Vérifie que le nom du fichier correspond bien à ce qui est indiqué dans l'attribut action de la balise form.

    Sinon il y a peut-être une autre explication : peut-être que la page contenant le formulaire est appelée depuis un autre fichier, ce qui est explique que l'url relative ne fonctionne pas.

    Il y a globalement 2 solutions pour s'en sortir :
    1-Saisir une url absolue dans l'attribut "action"
    2-regarde l'adresse exacte (ie : complète) que ton navigateur essaie de charger après la validation du formulaire, et met le fichier "envoi_mail.php" dans le dossier voulu en conséquence. (en dernier ressort, fait une capture d'écran de l'erreur, et envoie là)

  10. #10
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 38
    Par défaut
    Bonjour _ASH_,
    J'ai suivi tes conseils mais même resultat .....
    L'erreur est "HTTP 405" .... j'ai contacté mon hebergeur pour lui pas de pb les fonctions php sont instalées ainsi que les fonctions MIME .....
    En regardant sur le net, j'ai vu que cela pouvait venir de la methode "post" et qu'il fallait peut être pour resoudre le pb utiliser "get" .... bon d'accord mais on fait comment ? Je fais le changement dans ma page html au niveau de methode mais dans mon fichier php que dois-je changer ?

    ci dessous mes codes :
    page html :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <html>
     
    <head>
    <meta name="GENERATOR" content="Microsoft FrontPage 6.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Enregistrement</title>
    </head>
     
    <body>
    <FORM method=get action="envoi_mail.php">
    Enregistrement d'un utilisateur
    <TABLE BORDER=0>
    <TR>
    	<TD>Nom</TD>
    	<TD>
    	<INPUT type=text name="nom">
    	</TD>
    </TR>
     
    <TR>
    	<TD>Prénom</TD>
    	<TD>
    	<INPUT type=text name="prenom">
    	</TD>
    </TR>
     
    <TR>
    	<TD>Commentaires</TD>
    	<TD>
    	<TEXTAREA rows="3" name="commentaires">
    	Tapez ici vos commentaires</TEXTAREA>
    	</TD>
    </TR>
     
    <TR>
    	<TD COLSPAN=2>
    	<INPUT type="submit" value="Envoyer">
    	</TD>
    </TR>
    </TABLE>
    </FORM>
    </body>
     
    </html>

    et mon fichier php:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    //Préparation des variables
    $destinataire = 'monemail@domaine.fr';
    $headers = 'From '.$_REQUEST['nom'].' '.$_REQUEST['prenom']."\r\n";
    $headers .= "Mime-Version: 1.0\r\n";
    $headers .= "Content-type: text/plain; charset=utf-8\r\n";
    $headers .= "\r\n";
     
    //Envoi du mail proprement dit
    mail($destinataire, 'un visiteur a envoyé un commentaire', $_REQUEST['commentaires'], $headers);
     
    //Redirection de l'internaute
    header("Pragma: no-cache");
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: index.html");
    ?>

    Merci.
    Tequila_PF

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Par défaut
    La méthode GET n'est pas indiquée ici : elle passe les champs de formulaire dans l'url ; et en l'occurence tout un message doit y passer. (enfin, si ça marche avec, pourquoi pas...)

    Ca peut peut-être venir du fait qu'il manque des guillemets autours des valeurs de l'attribut method : essaie avec
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <FORM method="post" action="envoi_mail.php">

    Si ce n'est pas ça, j'avoue que je ne vois pas trop, n'arrivant pas à reproduire ce problème chez moi...

Discussions similaires

  1. Réponses: 9
    Dernier message: 30/12/2005, 03h00
  2. Probleme avec mes formulaire html dans mes pages web
    Par foungnigue dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/12/2005, 19h07
  3. PHP -- MYSQL -- Formulaire HTML
    Par waybee dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/11/2005, 09h30
  4. perl et formulaire html.
    Par nah_wah dans le forum Web
    Réponses: 6
    Dernier message: 23/09/2005, 19h38
  5. [POO] Formulaire HTML + fonction JS = Erreur
    Par bdaboah dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/11/2004, 21h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo