Commentaire(s) Créer un formulaire de contact pour votre site








Note :Si votre commentaire contient du code, sélectionner votre code avec votre souris puis utiliser la liste "Styles" et sélectionner "Code".


92c0jkfi
Nombre de commentaire : 122

Commentaire(s)

  • #36 Commentaire de jmdubdub posté le 23/04/10 à 16:27:53 :
  • jmdubdub
  • Bonjour,

    J'ai suivi les étapes pour créer un formulaire pour mon site.  A la fin du premier paragraphe, vous dites; " FIN du formulaire HTML". J'ai donc mis un nom de fichier "toto.html. Puis vous repartez sur du "php"!
    Quel est le nom de ce nouveau fichier.php?
    Réponse attendue.
    Salutations jmdbdub

  • #37 Commentaire de c00lman posté le 23/04/10 à 20:07:25 :
  • c00lman
  • Salut,
    En faite, il sagit d'un seul et unique fichier en PHP :). Il faut juste faire un copier/coller du code en prenant soin de changer les 4 variables. Sinon, il y a également l'archive qui est à dispo. http://creer-un-site.fr/script-du-formulaire.rar

  • #50 Commentaire de JB posté le 14/05/10 à 18:47:17 :
  • JB
  •  Bonjour,
    Je suis entrain d'essayer d'utiliser votre code mais une erreur est récurrente j'ai pourtant suivis étapes afin de le personnaliser mais toujours la mm erreur.
    Deprecated: Function eregi() is deprecated in D:\wamp\www\script-du-formulaire.php on line 23
    Je fais mes testes en localhost et j'utilise wampserver 2.
     Merci beaucoup de votre aide. ligne 23 :
    elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["son_email"]))

  • #51 Commentaire de c00lman posté le 15/05/10 à 11:54:39 :
  • c00lman
  • Bonjour,
    La fonction ergegi() est obsolète. Il faut la remplacer par la fonction preg_match()

  • #52 Commentaire de JB posté le 16/05/10 à 22:12:17 :
  • JB
  • Bonjour,

    merci pour votre réponse, mais en remplaçant la fonction eregi() par prematch() cela ne fonctionne pas, je ne sais malheureusement pas comment transformer le code pour l'utilisation de cette fonction.
    Pourriez vous s'il vous plaît expliquer comment s'utilise la fonction prematch() dans ce cas précis?

    je vous remercie.
    Bien cordialement.

  • #53 Commentaire de c00lman posté le 17/05/10 à 08:14:35 :
  • c00lman
  • Tu remplaces la ligne :
    elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.
    [a-z]{2,4}$"
    ,$_POST["son_email"])){

    par
    elseif (!preg_match("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.
    [a-z]{2,4}$"
    ,$_POST["son_email"])){

  • #57 Commentaire de Sroad posté le 19/05/10 à 07:55:50 :
  • Sroad
  • Bonjour,
    Merci de votre code, il est vraiment super !!!! Simple de mise en place, très efficace et très complet!!!
    Cela fait très pro sur un site même pour moi qui utilise Dreamweaver en amateur.
    Puis-je ajouter un destinataire à la réception de l'email ?

    Merci de votre réponse, et encore 1000 mercis.
    Stéphan

  • #58 Commentaire de c00lman posté le 19/05/10 à 08:52:59 :
  • c00lman
  • Bonjour Sroad,
    Ce destinataire en plus, il sort d'ou? D'une base de données?

  • #59 Commentaire de Sroad posté le 19/05/10 à 09:29:38 :
  • Sroad
  • Bonjour,
    Le destinataire est en plus.
    Merci de votre réponse

  • #61 Commentaire de c00lman posté le 19/05/10 à 14:39:41 :
  • c00lman
  • Le plus simple serait d'ajouter un second champ (email) au formulaire (voir plus si besoin), d'arranger la mise en forme (traitement php des erreurs et autres) puis d'incorporer l'envoie à la ligne :
    if (@mail($mon_email,$son_objet,$msg_pour_moi,$entete) && @mail($son_email,$son_objet,$accuse_pour_lui,$entete) && @mail(***)){

  • #69 Commentaire de jmdubdub posté le 31/05/10 à 15:23:21 :
  • jmdubdub
  • Bonjour,
    J'ai copié/collé votre fichier "formulaire", et voici la réponse que j'ai eu en le faisant fonctionner avec wampserver:
    Warning: preg-match0 [function preg-match]: No ending delimiter '^' found inC:\wamp\sitephp\formulaire on line 24
    Votre adresse n'est pas valide...,
    et pourtant mon adresse est du style: toto@laposte.net.
    Merci de ma répondre.
    Cdlt

  • #70 Commentaire de c00lman posté le 01/06/10 à 09:48:35 :
  • c00lman
  • Bonjour,
    Remplacez à la ligne incriminé le délimiteur $ par ^

    elseif (!preg_match("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.
    [a-z]{2,4}
    ^",$_POST["son_email"])){

  • #72 Commentaire de Romans posté le 03/06/10 à 11:36:00 :
  • Romans
  • Ce formulaire marche très bien chez free en directe, mais quand je l’insère dans la page html ça foire.
    Je suis « un bricoleur » et je ne comprends pas tout,
    Si quelqu’un m’éclaire un peut, SVP.

  • #73 Commentaire de c00lman posté le 03/06/10 à 12:58:10 :
  • c00lman
  • Bonjour Romans,

    Tu réponds toi même à ta question : "...mais quand je l’insère dans la page html ça foire."
    C'est du PHP, il faut donc que ta page porte une extension en .php et non en .html ;).

  • #74 Commentaire de Romans posté le 03/06/10 à 13:10:03 :
  • Romans
  • Et oui, je suis bon en 3D, animation WEB, mais nul en php.
    il faut que j'essaie.

  • #76 Commentaire de Sroad posté le 07/06/10 à 17:41:34 :
  • Sroad
  •  Bonjour,
     
    Sans vouloir trop abuser, est il possible de rajouter des cases à cocher ?
    Des cases correspondantes à des numéros de photos, je recevrais le mail directement avec le n° des photos cochées.
    Par avance merci de votre réponse.
    Cdlt

  • #77 Commentaire de c00lman posté le 07/06/10 à 18:14:41 :
  • c00lman
  • Bonjour,

     Oui c'est possible, consultez la page http://creer-un-site.fr/les-formulaires-6.php .

  • #85 Commentaire de Kilikatte posté le 26/06/10 à 12:35:00 :
  • Kilikatte
  • Bonjour,

    je tiens a préciser que je suis débutante... J'aimerais savoir comment intégrer ce formulaire a ma page html de base. Il faut surement créer une div ou sera contenu le php, mais quel est le code pour appeler mon formulaire ?

  • #86 Commentaire de c00lman posté le 27/06/10 à 15:37:05 :
  • c00lman
  • Bonjour,

    Il faut faire un simple copié/collé du code dans une page PHP, c'est à dire une page portant l'extension «.php». N'oubliez pas de complèter le formulaire ...

  • #106 Commentaire de Kaz posté le 30/08/10 à 16:10:37 :
  • Kaz
  • Hello tout d'abord merci pour ce script, cela marche parfaitement! Cependant je l'ai installé sur mon compte free et je voudrais changé le destinataire car est envoyé à monadresse@free.fr sauf que je veux l'envoyer sur mon adresse hotmail. Sauriez vous comment faire ?

  • #107 Commentaire de Kaz posté le 30/08/10 à 16:19:04 :
  • Kaz
  • Ah je viens de trouver, désolé pour le double com!

  • #108 Commentaire de mirobolus posté le 07/09/10 à 12:18:14 :
  • mirobolus
  • Bonjour,
    Avec mon faible niveau en php, j'ai compris grâce à ton script commenté à quoi servent précisément ce que j'écris ! Merci...

    J'ai une petite question. Quelle différence y a t-il entre :

    trim(stripslashes($_POST["nom"]))

    et

    stripslashes(trim($_POST['nom']))
    Merci d'avance.

  • #109 Commentaire de c00lman posté le 07/09/10 à 15:41:17 :
  • c00lman
  • Bonjour,

    trim() supprime les espaces (ou d'autres caractères) en début et fin de chaîne
    stripslashes() supprime les anti-slash d'une chaîne
    La seule différence dans le code est que les fonctions sont inversées mais le résultat est le même ;).

  • #110 Commentaire de mirobolus posté le 07/09/10 à 15:51:29 :
  • mirobolus
  • Merci, c'est limpide 

  • #124 Commentaire de Frank2 posté le 25/09/10 à 12:22:25 :
  • Frank2
  • Bonjours !

    J'aurais une question pour votre formulaire :

    Est-ce que notre adresse est protégée des robots et ce formulaire est-il antispam ?

    Merci de votre réponse !

    Réponse de l'admin : l'adresse est protégé et le formulaire ne possède pas d'antispam.

  • #134 Commentaire de Didier posté le 14/10/10 à 17:48:08 :
  • Didier
  • Sérieux j'ai rien compris...
    Je copie le code, j'enregistre en .php, et après ?

  • #135 Commentaire de c00lman posté le 15/10/10 à 08:32:59 :
  • c00lman
  • Salut,

    Changez les 4 variables ci-dessous dans le code:

        $mon_email = "Votre adresse email"; 
        $mon_pseudo = "Votre pseudo";
        $mon_url = "url de votre site";
        Merci et à bientôt sur http://votre-site.free.fr";

    Envoyez le fichier sur votre serveur et testez .

    Rien de plus, rien de moins ;)!

  • #171 Commentaire de gabriel72 posté le 08/01/11 à 07:34:35 :
  • gabriel72

  • Bonjour,

    le code fonctionne, après le changement des 4 variables.

    J'ai crée une newsletter pour une association, et je souhaitais ajouter un page d'échange avec un utilisateur.

    me reste à trouver un page désabonnement et les termes légaux concernant les newsletter.

    Merci pour votre code.

  • #172 Commentaire de c00lman posté le 08/01/11 à 11:30:12 :
  • c00lman
  • Bonjour,

    Concernant les mentions légales ->http://www.cnil.fr/vos-responsabilites/informations-legales/?profil=12&submit1=Valider

    Pour le désabonnement, ce code n'est pas prévu pour faire cela, c'est un simple script d'email et vous ne trouverez aucun code  pour le complèter. Quand il sagit de gestion d'email avec abonnement et désabonnement, il faut généralement utiliser une base de données. Il serait plus simple pour vous d'utiliser un script comme  phpmynewsletter

  • #186 Commentaire de albi posté le 16/01/11 à 22:41:23 :
  • albi
  • Bonsoir,
     J'ai un "parse error"sur la ligne suivante:precisement ligne "ok" si la verification...

        if (isset($_POST["envoyer"])){ // Si le formulaire a été soumis
        $etat = "erreur"; // On initialise notre etat à erreur, il sera changé à
      "ok" si la vérification du formulaire est un succès, sinon il reste à erreur

    Merci de votre aide

    Albi.

  • #187 Commentaire de c00lman posté le 17/01/11 à 09:23:13 :
  • c00lman
  • Salut albi,
    C'est normal et c'est une erreur de copier/coller:P!
    La ligne : " ok si la vérification du formulaire est un succès, sinon il reste à erreur" est en dehors du commentaire délimité par les doubles slash //.

    Soit vous mettez un // devant "ok...", soit vous mettez cette ligne au bout de l'autre de façon à ce qu'elle soit considéré comme un commentaire et non comme du code.
     

  • #188 Commentaire de albi posté le 17/01/11 à 19:43:43 :
  • albi
  • Bonsoir,

    Merci pour le premier dépannage, maintenant c'est cette ligne (rouge) qui me pose problème
        // On affiche un message de confirmation
            echo "<a href=\"" . $mon_url . "\">Retour</a></p>\n";
            // Avec un lien de retour vers l'accueil du site
    Merci d'avance!

    Cordialement

    Albi

  • #189 Commentaire de c00lman posté le 17/01/11 à 20:16:49 :
  • c00lman
  • Salut,
    Et quelle est le message d'erreur?

    Vous avez bien remplit la variable $mon_url ?

  • #190 Commentaire de albi posté le 17/01/11 à 21:09:06 :
  • albi
  • Le message d'erreur est :
    Parse error
    : parse error in C:\wamp\www\nouveau site\new 3.php on line 202

    J'ai par ailleur placé mon url comme ceci mais rien n'y fait!

    if (@mail($mon_email,$son_objet,$msg_pour_moi,$entete) &&
    @mail($son_email,$son_objet,$accuse_pour_lui,$entete)){ // Si le mail a été envoyé
            echo "<p style=\"text-align:center\">Votre message a &eacute;t&eacute;
    envoy&eacute;, vous recevrez une confirmation par mail.<br /><br />\n";
    // On affiche un message de confirmation
    // On affiche un message de confirmation
            echo "<a href=\"http://www.cotebasquelocationvacances.com" . $mon_url . "\">Retour</a></p>\n";
    // Avec un lien de retour vers l'accueil du site

    J'y perd mon latin!!  en tout cas, merci encore pour votre réactivité.

  • #191 Commentaire de albi posté le 17/01/11 à 22:38:26 :
  • albi

  • Re- bonsoir,
    On avance, le formulaire s'affiche sur ma page, cepandant, il m'indique maintenant ce message d'erreur lorsque j'essaie de m'envoyer un message dans une autre messagerie !

    Notice: Undefined variable: erreur in C:\wamp\www\nouveau site\new 3.php on line 92

    Et voila ce qu'il ya à la ligne 92 (en rouge):

        if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
          if ($etat="erreur"){ // Cas où le formulaire a été soumis mais il y a des erreurs
            echo "<span style=\"color:red\">".$erreur."</span><br /><br />\n";
            // On affiche le message correspondant à l'erreur
        }

    ?>

    Merci à vous

  • #192 Commentaire de c00lman posté le 18/01/11 à 09:44:45 :
  • c00lman
  • Bonjour albi,

    Il est inutile de faire ça :
    echo "<a href=\"http://www.cotebasquelocationvacances.com" . $mon_url . "\">Retour</a></p>\n";

    $mon_url est une variable qui contient déja votre url.

    Concernant l'erreur rencontré ligne 92, je penche une fois de plus pour un commentaire coupé et considéré comme étant du code.
    Ce qui est le cas pour cette ligne :
    if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le
    formulaire n'a pas été soumis (etat=attente)

    En rouge le code
    , en vert le commentaire et en marron la fin du commentaire qui est considéré comme du code et donc source d'erreur.

    Vous pouvez télécharger directement le code ici » http://creer-un-site.fr/script-du-formulaire.rar

    Pour conclure, je n'ai jamais travaillé avec Wamp et je pense que les erreurs que vous rencontrez sont à chaque fois des erreurs de commentaires tronqués pris pour du code.

    Cdt

  • #202 Commentaire de gmond23 posté le 27/01/11 à 07:03:58 :
  • gmond23
  • Merci pour votre code!

    J'ai un problème avec le champ E-Mail: Quand J'inscrit une addresse (ex: monemail@mondomaine.com) il indique toujours que :

    "Votre adresse e-mail n'est pas valide..."


            elseif (empty($_POST["son_email"])) { // L'utilisateur n'a pas rempli le champ email
                $erreur="Nous avons besoin de votre e-mail pour vous r&eacute;pondre...";
            }
            elseif (!preg_match("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.
    [a-z]{2,4}^",$_POST["son_email"])){

    // On vérifie si l'email est bien de la forme messagerie@domaine.tld (cf cours d'expressions régulières)
                $erreur="Votre adresse e-mail n'est pas valide...";
            }
    Merci!!!

  • #203 Commentaire de c00lman posté le 27/01/11 à 08:31:41 :
  • c00lman
  • Bonjour,

    Bhaaaa la je sèche un peut, je ne vois pas trop ou se ce situe l'erreur. Testez la ligne ci-dessous sur une seule ligne :

    else if (!preg_match("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["son_email"])){

    Si ça ne fonctionne pas, testez celle-ci :

    else if (!preg_match("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}^",$_POST["son_email"])){

  • #204 Commentaire de gmond23 posté le 27/01/11 à 15:56:55 :
  • gmond23
  • Merci c00lman! J'ai essayé les deux lignes instructions

    + La première ligne ne marche que si je mets "eregi" au lieu de "preg_match"

    + la seconde ligne marche tel quel.

    J'ai donc, choisi la seconde ligne.

    Merci!!!

  • #205 Commentaire de Laure posté le 27/01/11 à 16:31:36 :
  • Laure
  • Bonjour,

    J'ai suivi toutes vos instructions et j'ai rencontré certains problèmes que j'ai pu régler car c'était les mêmes que les autres internautes ont pu rencontrer.
    Cependant, j'ai une autre erreur mais je ne sais pas du tout ce que cela peut etre:
    Lorsque je clique sur envoyer une fois que tout les champs sont remplis, je n'ai pas de message d'erreur mais ceci qui s'affiche "Un problème s'est produit lors de l'envoi du message. Réessayez...".
    Si vous avez une idée ....
    Merci à l'avance

  • #206 Commentaire de c00lman posté le 27/01/11 à 16:35:07 :
  • c00lman
  • Ce qui est étonnant, c'est que la seconde ligne de code est en tout point identique à celle qui vous posait problème au point de départ. Le seul truc qui diffère, c'est l'espace entre else et if . Le principal, c'est que ça fonctionne ;).

  • #208 Commentaire de c00lman posté le 27/01/11 à 16:56:44 :
  • c00lman
  • Salut Laure,

    C'est relout ^^ et je ne vois pas pourquoi ça fait ça!
    Quelle votre version de PHP?

    Testez les variables une par une pour voir si elles sont bien présentent lors de l'envoie. Essayez également en supprimant les @ de la fonction mail().

  • #209 Commentaire de Laure posté le 27/01/11 à 17:12:17 :
  • Laure

  • Merci de m'avoir répondu aussi rapidemment.
    J'utilise Easy PHP 5.3.1
    Je vais essayer de tester les variables pour voir tout ça mais est-il possible que le problème viennent de ces lignes :

    // On affiche un message de confirmation
            echo "<a href=\'' . http://www.3isa.fr . '\'>Retour</a></p>\n";

    sachant que l'url n'existe pas car c'est un site que je n'heberge pas encore et qui est donc en local sur mon ordi. De plus, j'ai changé cette ligne car j'avais une erreur avec les guillemets donc j'ai changé celle à l'intérieur du écho par des cotes... je sais pas si c'était une bonne idée mais le problème n'était plus là en tout cas ...

  • #210 Commentaire de c00lman posté le 27/01/11 à 18:01:55 :
  • c00lman
  • A mon avis, l'erreur provient sans doute de l'utilisation de Easy PHP (incompatibilité ou je ne sais quoi d'autre). Je n'ai jamais utilisé ce logiciel donc mon aide ne va pas vous servir à grand chose.

    Pour la ligne :  echo "<a href=\'' . http://www.3isa.fr . '\'>Retour</a></p>\n"; , elle est fausse :P .
    echo "<a href=\"http://votre site.com\">Retour</a>\n";

  • #212 Commentaire de Laure posté le 28/01/11 à 08:19:23 :
  • Laure
  • Bonjour,
    J'ai changé la ligne fausse mais j'ai dû faire une autre boulette car j'ai toujours le même problème. Je vais essayer de vérifier tout ça pis je vous retient au courant si j'y arrive ou pas xD.
    Bonne journée et encore merci pour vos conseils

  • #213 Commentaire de Laure posté le 28/01/11 à 08:20:33 :
  • Laure

  • .. j'oublié j'utilise WampServer maintenant mais j'ai encore le problème

  • #215 Commentaire de c00lman posté le 28/01/11 à 08:31:06 :
  • c00lman
  • Salut Laure,

    Vous êtes bien matinal ! Vous n'avez pas moyen de tester le code directement sur un serveur ?

  • #216 Commentaire de Laure posté le 28/01/11 à 10:00:49 :
  • Laure
  • C'est bon !!! Enfin!! J'avais la petite erreur que vous m'aviez dite mais surtout un problème avec la config de mon smtp. Tout est OK.
    Merci beaucoup pour votre aide et pour ce super formulaire. Juste un dernier Hic, je ne reçois jamais l'accusé de réception ... mais bon au pire c'est pas grave xD

  • #217 Commentaire de c00lman posté le 28/01/11 à 10:36:17 :
  • c00lman
  • Bhaaa décidément, il ne vous aime pas ce formulaire :D. Ceci dit, l'accusé de réception ne sert pas à grand chose!

    Si cette partie ne vous sert pas ou ne veut pas fonctionner, autant la supprimer. Pour ce faire, vous supprimez les lignes suivantes :
    // Mise en forme de l'accusé réception qu'il recevra
    $accuse_pour_lui = "Bonjour $son_pseudo,\n
    Votre message nous a bien été envoyé et nous tâcherons de vous répondre le plus
    rapidement possible.\n\n
    - Votre E-mail : $son_email \n
    - Votre site : $son_url \n
    - L'objet de votre message : $son_objet \n
    - Votre message : \n $son_message \n\n
    Merci et à bientôt sur http://votre-site.free.fr !"
    ;

    Puis vous remplacez la ligne :
    if (@mail($mon_email,$son_objet,$msg_pour_moi,$entete) && @mail($son_email,$son_objet,$accuse_pour_lui,$entete)){
    Par
    if (@mail($mon_email,$son_objet,$msg_pour_moi,$entete)){

  • #218 Commentaire de Laure posté le 28/01/11 à 12:09:47 :
  • Laure
  • Tout est OK, merci beaucoup.
    Par contre, vous devrez regarder vos config ou je sais pas trop quoi mais je reçois le mail de confirmation par dizaine xD.
    Sur ce, bonne journée et encore merci pour votre aide!

  • #219 Commentaire de c00lman posté le 28/01/11 à 18:19:25 :
  • c00lman
  • Bon si ça fonctionne c'est tout cool ;). Je pense également avoir règlé mon soucis de multiples emails que vous recevez (du moins je pense).

  • #221 Commentaire de gmond23 posté le 31/01/11 à 22:35:28 :
  • gmond23
  • Bonjour,

    Dans le formulaire,
    Dans le champ" Sujet de votre message" ainsi que dans le cham "Message" si l'utilisateur saisie certaines lettres (ç, è, à, é, ù, ê, î...) 
    Dans la boîte de réception du courriel soit du webmaster ou de l'usager j'aimerais savoir comment faire pour que ces lettres n'apparaissent pas de façon éroné. (ex:  été ==été)

    Merci

  • #348 Commentaire de Chris posté le 06/05/11 à 12:45:09 :
  • Chris
  • Bonjour,
    merci pour ce script efficace qui fonctionne sur Free sans prestataire externe.

    Je souhaite remplacer la page blanche de remerciement
    echo "<p style=\"text-align:center\">Votre message a &eacute;t&eacute; envoy&eacute;, vous recevrez une confirmation par mail.<br /><br />\n";
    par une page de ma fabrication : merci.html,

    cela est-il possible et où ?

    Merci

  • #349 Commentaire de c00lman posté le 06/05/11 à 14:11:10 :
  • c00lman
  • Salut,

     Il faut remplacer la partie :

    // Si le mail a été envoyé
            echo "<p style=\"text-align:center\">Votre message a &eacute;t&eacute; 
    envoy&eacute;, vous recevrez une confirmation par mail.<br /><br />\n"; 
    // On affiche un message de confirmation
            echo "<a href=\"" . $mon_url . "\">Retour</a></p>\n"; 
    // Avec un lien de retour vers l'accueil du site

    Par :

    header('Location: merci.html');

    Si le header location renvoie une erreur, tu peux utiliser à la place un code Javascript :

     echo '<script type="text/javascript">
    window.setTimeout("location=(\'merci.html\');",10)
    </script>';

  • #350 Commentaire de Chris posté le 07/05/11 à 19:22:00 :
  • Chris
  • Merci
    cette solution est parfaite et instantanée.
    Nickel.

    J'ai opté pour la version js

    Pour ma compréhension personnelle,
    à quoi sert le nombre 10 dans :

    window.setTimeout("location=(\'merci.html\');",10)

    :)

  • #351 Commentaire de c00lman posté le 07/05/11 à 20:28:58 :
  • c00lman
  • Salut Chris,

    Le chiffre 10 correspond au nombre de millisecondes (millièmes de seconde) après lequel la fonction doit être appelée.

    Le code dégrossit : window.setTimeout(code, delai);

  • #352 Commentaire de Harry posté le 07/05/11 à 21:53:47 :
  • Harry
  • Un grand merci c00lman pour ce formulaire qui fonctionne très bien sur Free dans mon cas.
    Je rencontre cependant un petit problème déjà évoqué par gmond23 posté le 31/01/11 à 22:35:28 mais auquel aucune réponse n'a été apportée :

    Si l'utilisateur saisit  des lettres avec des caractères accentués (par exemple ç, è, à, é, ù, ê, î...) dans le champ" Objet du message" ou dans le champ "Message", ces lettres sont remplacées par des caractères bizarres (souvent des carrés ou des tirets) dans le mail reçu par le webmaster. Par contre, le mail de confirmation renvoyé à l'utilisateur comporte bien les caractères accentués. Il s'agit d'un problème d'encodage de caractères. Comment y remédier ?

    Merci d'avance

  • #354 Commentaire de Harry posté le 07/05/11 à 22:40:36 :
  • Harry
  • J'ai trouvé la solution à mon problème de caractères accentués sur internet en remplaçant la ligne :
        $entete .= "MIME-Version: 1.0";
    par les deux suivantes :

        $entete .='Content-Type: text/plain; charset="iso-8859-1"'."\n"; 
        $entete .='Content-Transfer-Encoding: 8bit'; 

    Toutes mes excuses... J'ai trouvé J'ai trouvé les informations nécessaires ici :
    http://www.vulgarisation-informatique.com/mail.php

    Cordialement et encore un grand merci pour ce tutorial

  • #355 Commentaire de Chris posté le 08/05/11 à 11:16:07 :
  • Chris
  • Bonjour,
    je me heurte à un problème avec la ligne rouge d'erreur et son positionnement au-dessus du formulaire, qui décale tout le bloc vers le bas à chaque fois qu'elle doit apparaitre.

    J'ai intégré ma partie html autour de ton formuaire dans une page .php, mais du coup la ligne d'erreur n'a plus de place pour s'afficher et le formulaire ne fonctione plus.

    J'ai fait des tests avec une page .php intégrant le form dans un table html lt plus simple possible avec succès, mais ma page contient des divs en positions relatives et absolues, ce qui doit bloquer son apparition, je pense.

    Y a-t-il un moyen de la positionner ailleurs ?

    Voire même l'intégrer dans une div en overlay ?

    Etant donné que c'est une page de test, je ne peux pas mettre le lien ici, mais je peux l'envoyer par MP ?
    Merci

  • #356 Commentaire de c00lman posté le 08/05/11 à 11:44:21 :
  • c00lman
  • Merci Harry de nous faire profiter de ta solution qui en aidera surement plus d'un ;). J'en ai profité pour complèter le tutoriel.

  • #357 Commentaire de c00lman posté le 08/05/11 à 12:01:13 :
  • c00lman
  • Salut Chris,

    Bon, on est Dimanche et je crois mon cerveau est en partie en week-end  :)!
    C'est quoi " un div en overlay"?
    As tu essayé de mettre le message d'erreur en position:absolute; ?

    Sinon, envoie moi ton fichier pour que j'y jette un oeil.

  • #359 Commentaire de Chris posté le 08/05/11 à 19:32:26 :
  • Chris
  • J'appelle div en overlay ce type d'élément  :)

    div overlay

    vu chez
    http://www.f1-fantasy.net/assistant/standard/assistant.htm
    essayez de continuer sans cocher aucune case,
    cette popup s'affichera.
    merci

  • #360 Commentaire de c00lman posté le 09/05/11 à 08:21:16 :
  • c00lman
  • Apparament ce qu tu nomes "div en overlay" semble ne fonctionner que sous Firefox. J'ai testé le site que tu mentionnes sous Firefox, IE et Chrome. J'ai également regardé le code source du site et il n'y a aucun code ou plugins qui gère cet effet. J'en déduis alors que c'est Firefox ou le navigateur que tu utilises qui gère les "alert" Javascript de cette façon.
    Pour info, regarde du côté de "lightbox" pour cet effet.

  • #361 Commentaire de Chris posté le 09/05/11 à 10:53:03 :
  • Chris
  • Très juste coolman,
    je n'avais pas contrôlé sur IE et Chrome pour cette option.

    J'ai résolu mon problème de positionnement du message d'erreur qui, après plusieurs tests tenait bizarrement dans le fait que j'avais intégré une image à la place du bouton envoyer "type=submit". alors que sur un autre de mes formulaires, la même image envoie le formulaire sans problème...

    En attendant de trouver la raison, je mettrais le type=submit gris et moche habituel
    et je te remercie pour ton aide précieuse par MP qui a débuggé mon problème.


    Pour info et apporter ma contribution en échange :
    le message d'erreur peut être modifié en taille couleur et positionnement en créant une classe css de ce type que j'ai nommé "formerreur" :

    .formerreur {
        font-family: Arial, Helvetica, sans-serif;
        font-size: 12px;
        line-height: 20px;
        font-weight: bold;
        color: #FFFFFF;
        background-color: #CC0000;
        text-align: center;
        display: block;
        padding-left: 4px;
        height: 20px;
        -moz-border-top-left-radius: 6px;
        border-top-left-radius: 6px;
        -moz-border-top-right-radius: 6px;
        border-top-right-radius: 6px;
    }


     qui donne cet effet (sous FF et Chrome avec coins arrondis)
    form erreur

    en remplacant le span style=\"color:red\"
    de la ligne 42 (du script original)

    if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
        if ($etat=="erreur"){ // Cas où le formulaire a été soumis mais il y a des erreurs
            echo "<span style=\"color:red\">".$erreur."</span><br /><br />\n"; // On affiche le message correspondant à l'erreur
        }


    par un :
    span class=\"formerreur\"

    if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
        if ($etat=="erreur"){ // Cas où le formulaire a été soumis mais il y a des erreurs
            echo "<span class=\"formerreur\">".$erreur."</span><br /><br />\n"; // On affiche le message correspondant à l'erreur
        }


    J'ai aussi pu changer toutes les occurences de son_pseudo, son_email, son_url, son_objet, son_message, lignes 6 à 14

    // On récupère les champs du formulaire, et on arrange leur mise en forme
        if (isset($_POST["son_pseudo"])) $_POST["son_pseudo"]=trim(stripslashes($_POST["son_pseudo"])); // trim()  enlève les espaces en début et fin de chaine

        if (isset($_POST["son_email"])) $_POST["son_email"]=trim(stripslashes($_POST["son_email"])); // stripslashes()  retire les backslashes ==> \' devient '

        if (isset($_POST["son_url"])) $_POST["son_url"]=trim(stripslashes($_POST["son_url"]));

        if (isset($_POST["son_objet"])) $_POST["son_objet"]=trim(stripslashes($_POST["son_objet"]));

        if (isset($_POST["son_message"])) $_POST["son_message"]=trim(stripslashes($_POST["son_message"]));


    par :

     // On récupère les champs du formulaire, et on arrange leur mise en forme
        if (isset($_POST["votre_nom"])) $_POST["votre_nom"]=trim(stripslashes($_POST["votre_nom"])); // trim()  enlève les espaces en début et fin de chaine
     
        if (isset($_POST["votre_email"])) $_POST["votre_email"]=trim(stripslashes($_POST["votre_email"])); // stripslashes()  retire les backslashes ==> \' devient '
     
        //if (isset($_POST["votre_url"])) $_POST["votre_url"]=trim(stripslashes($_POST["votre_url"]));
     
        if (isset($_POST["votre_objet"])) $_POST["votre_objet"]=trim(stripslashes($_POST["votre_objet"]));
     
        if (isset($_POST["votre_message"])) $_POST["votre_message"]=trim(stripslashes($_POST["votre_message"]));


    en désactivant la ligne "votre_url" qui était inutile dans mon cas.
    Il ne faut pas oublier de changer toutes les occurences de ces mots partout dans le script,
    en faisant attention à ne pas changer ce qui concerne votre partie dans les lignes 99 à 120.

    Merci


  • #362 Commentaire de c00lman posté le 09/05/11 à 15:33:25 :
  • c00lman
  • Autre possibilité :

    if ($etat=="erreur"){
    $affiche_erreur = "<span class=\"formerreur\">".$erreur."</span><br/>"; 
    }

    Et on affiche le résultat ou on souhaite en exécutant un simple echo :

    <?php echo $affiche_erreur;?>

  • #377 Commentaire de MimS posté le 14/05/11 à 17:12:17 :
  • MimS
  • Je tiens vraiment à te remercier ! Cela fait plaisir d'avoir des tutos qui fonctionnent ! 
    Encore merci ;)

  • #378 Commentaire de c00lman posté le 14/05/11 à 19:41:09 :
  • c00lman
  • De rien Mims, ça fait plaisirs à lire.

  • #413 Commentaire de Cass posté le 29/05/11 à 00:39:19 :
  • Cass
  • Impec merci ! J'avais quelques problèmes mais en lisant tous les commentaires j'ai trouvé une solution ^^
    Pour ceux qui ont un message d'erreur lorsqu'ils envoient un message de test il est possible que ce soit à cause de leur navigateur, j'ai un problème de referer sous firefox (et tout un tas d'autres problèmes..) mais en testant sous safari tout marche impec ! ;)

  • #418 Commentaire de sonsonena posté le 08/06/11 à 16:05:55 :
  • sonsonena
  • j'ai copié exactement le même script pour le tester et je vois une erreur:
    Parse error: syntax error, unexpected T_STRING in /homez.93/sanaroui/www/index.php on line 4

    c quoi le prob svp? j'ai rien changé ( à part mon adresse et mon pseudo)

  • #419 Commentaire de niko31 posté le 08/06/11 à 17:23:00 :
  • niko31
  • Bonjour,

    je voudrai savoir si mon code est bon pour récuperer la valeur d'un champ <select>


    <select id="min_repo" name="min_repo" value="
    <?php
    if (!empty($_POST["min_repo"])) {
    // l'e-mail de l'expéditeur a été saisi --> le réafficher
    echo htmlspecialchars($_POST["min_repo"],ENT_QUOTES);
    }
    ?>">
                           
    <option>0</option>
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
     </select>minute(s) <br /><br />


    Merci pour votre réponse

  • #420 Commentaire de c00lman posté le 08/06/11 à 20:14:22 :
  • c00lman
  • Bonjour sonsonena,

    Je suis presque sure que c'est une erreur de copié/collé. Un ligne de commentaire doit être scindé en deux et considéré comme du code.

  • #421 Commentaire de c00lman posté le 08/06/11 à 20:24:20 :
  • c00lman
  • Salut niko31,

    C'est presque ça :) :
    <select id="min_repo" name="min_repo">
    <option value="0"<?php if ($_POST["min_repo"]==0) {echo "selected='selected'";}?>>0</option>
    <option value="1"<?php if ($_POST["min_repo"]==1) {echo "selected='selected'";}?>>1</option>
    <option value="2"<?php if ($_POST["min_repo"]==2) {echo "selected='selected'";}?>>2</option>
    <option value="3"<?php if ($_POST["min_repo"]==3) {echo "selected='selected'";}?>>3</option>
    <option value="4"<?php if ($_POST["min_repo"]==4) {echo "selected='selected'";}?>>4</option>
    </select>minute(s) <br /><br />

  • #422 Commentaire de Elicia posté le 08/06/11 à 22:00:04 :
  • Elicia
  • Bonsoir !

    Jeune Débutante en html et tout ce qui touche à  la programmation (la majuscule souligne l'envergure de mon niveau ;)  , j'ai décidé de retrousser mes manches pour créer le site de notre associaton.

    Je précise je travaille sur Kompozer et teste en local sur wamp. Mon problème est le suivant toutes les pages de mon ste sont en html et j'aimerai intégrer votre formulaire dans ma page qui se nome contact.
    J'ai bien compris qu'il fallait que la page porte l'extension .Php mais comment faire car quand je l'intègre dans la zone où je souhaiterai mettre le form eh bien j'ai un résultat plus quinquiétant (ma page ne s'ouvre définitivement pas...). Je sais pas si j'ai été très claire ? ahahah

    Pleaaaassse sos Mr le magicien du html

  • #423 Commentaire de c00lman posté le 09/06/11 à 08:21:55 :
  • c00lman
  • Bonjour Elicia,

    Si votre document nommé "contact" porte bien l'extention ".php" soit "contact.php", que vous avez correctement inséré le code du formulaire à l'emplacement désiré sans erreur de "copié/collé", remplit correctement les variables, alors le soucis vient probablement de la configuration de wamp.

    Note : je n'ai jamais utilisé "wamp", je ne sais donc pas comment il fonctionne!

    Si vous ni arrivez pas, envoyez moi votre fichier que j'y jette un oeil.

  • #424 Commentaire de niko31 posté le 09/06/11 à 17:59:26 :
  • niko31
  • Merci c00lman pour ta rapidité de ta réponce ca m'aide beacoup =)

    je te remerci ;)

  • #425 Commentaire de NEIGH posté le 13/06/11 à 20:44:38 :
  • NEIGH
  • Bonsoir

    je vous remercie pour ce code, j'ai compris comment recevoir le message du client qui remplit le formulaire. il me donne:

    Un problème s'est produit lors de l'envoi du message. Réessayez... quand je click sur envoyer
    je dois changer les 3 variable par quoi ?

    Pour info, mon application est executé sur tomcat

    Merci

  • #426 Commentaire de c00lman posté le 13/06/11 à 21:17:34 :
  • c00lman
  • Salut NEIGH,

    C'est pourtant indiqué :

        $mon_email = "Votre adresse email"; 
        $mon_pseudo = "Votre pseudo";
        $mon_url = "url de votre site"; 
        Merci et à bientôt sur http://votre-site.free.fr";

  • #427 Commentaire de Chris posté le 15/06/11 à 16:53:42 :
  • Chris
  • Bonjour,
    je reviens sur le commentaire
    #354 de Harry posté le 07/05/11 à 22:40:36 :

    au sujet des caractères accentués dans l'Objet et le message.
    J'ai testé plusieurs solutions sans résultat :

    $entete .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
    $entete .='Content-Transfer-Encoding: 8bit';


    ça me done toujours des :
    - L'objet de votre message : test réel 02 - Votre message : test réel, envoi avec accents à é è Une idée en passant ?

    Les serveur de mails sont sur Free.fr

    Je viens même de tester en désactivant totalement les lignes MIME,
    aucun changement
    //$entete .= "MIME-Version: 1.0";
    //$entete .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
    //$entete .='Content-Transfer-Encoding: 8bit';


  • #428 Commentaire de c00lman posté le 15/06/11 à 19:14:55 :
  • c00lman
  • Salut Chris,

    Le soucis provient peut être de la méta Content-Type de ton document. Teste avec un charset en iso-8859-1 ou en UTF-8.

  • #429 Commentaire de Chris posté le 17/06/11 à 10:43:16 :
  • Chris
  • Tu as raison, Coolman,
    exact, le charset doit impérativement être

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

    ce qui implique que le même charset doit s'appliquer aux éléments Library en  .lbi imbriqués
    s'il y en a dans vos pages
    sinon le mélange de l'UTF-8 et iso-8859 ne fait pas bon m& eacute; nage ... ou m É nage !!
    ni dans le texte, ni dans l'email reçu.

  • #436 Commentaire de G6 posté le 24/07/11 à 15:06:25 :
  • G6
  • Un très grand merci pour ce tuto, il est vraiment super.

    Encore merci ;)

    Réponse de l'admin :
    De rien !

  • #438 Commentaire de neophyte posté le 09/08/11 à 22:05:10 :
  • neophyte
  • Bonjour et merci infiniment pour ton code, je pense que ce sera utile pour nous les néophytes qui ne connaissons pas grande chose.
    J'ai copié ton code et j'ai crée un fichier index.php dans un dossier contact mais ça ne s'excute pas. j'utilise wampserver. Est ce qu'il ya quelque chose de j'ai mal noté ou bien que je devais faire après ce code.
    Merci pour ta reponse.

  • #439 Commentaire de c00lman posté le 10/08/11 à 09:46:27 :
  • c00lman
  • Bonjour neophyte,

    Je ne connais pas l'utilisation de wamp et il est alors possible qu'il n'accepte pas les variables d'environnement tel que :
     <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> 
    ..qu'il faut peut être remplacer par l'url du fichier qui contient le formulaire...
    Sinon, vous avez bien remplit les données (variables) du formulaire?

  • #440 Commentaire de neophyte posté le 10/08/11 à 10:30:36 :
  • neophyte
  • salut c00lman,
    Merci pour ta reponse, oui j'ai bien rempli le formulaire, sans doute que tu as raison, le problème doit se trouver au niveau du parametrage de wampserver.
    Mais je ne sais comment dechiffrer ce qui ne va pas (grrrrrrrrrrrr)

    Aussi voudrais te demander si tu peux me conseiller comment parametrer CKeditor pour l'utiliser dans mes textarea de mes différents champs de saisie afin d'utiliser la mise en forme  je sais que c'est pas le sujet ici, mais si tu as une idée, ça pourrait m'être utile
    Merci

  • #441 Commentaire de c00lman posté le 10/08/11 à 11:33:26 :
  • c00lman
  • En supposant que ton formulaire (textarea) se nome "commentaire" :
    <script type="text/javascript">
    CKEDITOR.replace( 'commentaire',
        {
            toolbar :
            [
      ['Source','-','Save','NewPage','Preview','-','Templates'],
      ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
      ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
      ['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button',
      'ImageButton', 'HiddenField'],
      '/',
      ['Bold','Italic','Underline','Strike','-','NumberedList','BulletedList'],
      ['Link','Unlink','-','Anchor','Outdent','Indent','Blockquote'],
      ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
      ['TextColor','BGColor','-','Image','Table','HorizontalRule','Smiley','SpecialChar','PageBreak',
      'Maximize', 'ShowBlocks','-','About'],
      '/',
      ['Styles','Format','Font','FontSize'],
            ]
        });
    </script>
    Pour supprimer des éléments, tu retires directement ce que tu veux dans le code, par exemple pour supprimer le bouton "source" tu supprimes 'Source',.
    Pour supprimer des éléments de la liste déroulante (style), il faut allé dans le fichier : plugins»stylescombo»styles»default.js
    Pour modifier le style css des éléments,  voir du côté de contents.css.

    Pour Wampserver, je ne peux pas t'aider :(

  • #447 Commentaire de neophyte posté le 16/08/11 à 00:53:49 :
  • neophyte
  • salut c00lman, merci pour ton aide, j'ai pu resoudre le problème avec le formulaire de contact sous wamp, il fallait juste modifier le fichier php.ini en changeant le SMTP localhost par le SMTP  de son FAI. S'il ya pas d'erreurs dans le code php ça devrait fonctionner.
    pour CKEDITOR je galère encore, mais on verra bien à ton retour si jai pas encore trouvé de solution
    Je te souhaite bonne vacances

    Merci infiniment pour ta disponibilité

  • #479 Commentaire de pyves32 posté le 06/10/11 à 00:13:54 :
  • pyves32
  • Bonsoir

    J'ai créé un site web avec webpage maker et celui ci a un formulaire de contact mais html uniquement, ce qui fait que si on clique sur "envoyer" on arrive sur outlook.
     Pourriez vous m'aider et si possible prendre mon msn afin que je puisse me sortir de cette galère qu'est le formulaire de contact, et si possible m aider à inserer le votre.

    Cordialement

  • #480 Commentaire de c00lman posté le 06/10/11 à 07:49:07 :
  • c00lman
  • Bonjour pyves32,

    Il faut juste faire un copier/coller du code dans un document dont l'extention doit être ".php" et en prenant soin de changer les 4 variables.
    Sinon, il y a également l'archive qui est à dispo. http://creer-un-site.fr/script-du-formulaire.rar.

    Pas besoin de MSN pour si peut ;).
    Cdt

  • #481 Commentaire de pyves32 posté le 06/10/11 à 11:01:05 :
  • pyves32
  • J'ai fais ce que vous m'avez dis, sauf qu'en ayant relu le tutorial, j'ai vu qu'il fallait un site "free"

    Du coup c est peut etre parcequ'il n'y  aucun lien entre ma page contact.html et contact.php que ça ne marche pas?

    Merci beaucoup d'avance

  • #482 Commentaire de c00lman posté le 06/10/11 à 11:34:21 :
  • c00lman
  • Il ne sert à rien d'avoir 2 pages de contactes. Votre page "contacte.html" vous la virez et vous la remplacez par "contacte.php" en y placent le code du tutorial. Comme c'est du code PHP, il faut un environnement PHP (Apache) pour que ça fonctionne. Après vous avez juste à intégrer votre design à cette page puis faire un lien vers celle-ci.
    Si vous n'avez pas de serveur sous la main pour faire des teste dans un environnement PHP, téléchargez le logiciel "Wampserver" sur votre ordinateur.

  • #483 Commentaire de pyves32 posté le 06/10/11 à 21:56:20 :
  • pyves32
  • Normalement, mon serveur lws, offre un environnement php, donc pas de soucis, en revanche je n'arrive pas à insérer le décor dans le fichier php.

    Ca m'déprime j'arrive pas à progresser , pourtant ....

    Merci d'essayer de m'aider

  • #484 Commentaire de c00lman posté le 07/10/11 à 07:50:06 :
  • c00lman
  • Pour le design je ne peux rien y faire et ça ne doit pas être bien compliqué. Il faut juste trouvez le "div" (si vous utilisez le CSS) dans votre code qui permet d'intégrer vos articles à vos pages et la vous casez le code à l'intérieure de ce "div". Idem si vous utilisez une table.

    Au pire et après vraiment avoir tout essayé sans succès, vous m'envoyez par mail la page ou vous souhaitez intégrer le code (avec le design complet + css) que j'y jette un oeil.

  • #498 Commentaire de Kitsouné posté le 05/11/11 à 19:43:32 :
  • Kitsouné
  • Bonjour et merci pour toutes ces explications !

    Ceci dit... j'ai un soucis... J'avais déjà un système de formulaire sur mon site, mais un beau jour je me suis rendue compte que le formulaire de contact, ne me transmettait plus les messages. Après avoir cherché partout sans trouver, je me suis résolue à recrer un formulaire, j'ai donc utiliser le votre (vu que je suis chez free... je me suis dit que ça devrait résoudre le problème...).

    Donc j'ai copier/coller, retiré ce que je ne voulais pas, mais quand je tente de faire un test... Le formulaire me dit que mon message est bien partie, sauf que je ne reçois rien sur ma boite mail, et je ne reçois pas non plus d'accusé de reception...

    Donc, mon soucis semble que... je ne peux pas faire fonctionner de formulaire de contact, quel que soit son code... A votre avis... est-ce un problème dans les commandes "MySql" ?
    (Et dire que je viens de passer en tout... 5h là dessus, avant de me décider à poster ici... ^^')

  • #499 Commentaire de c00lman posté le 05/11/11 à 20:01:22 :
  • c00lman
  • Bonsoir Kitsouné,

    Je viens de faire le teste en téléchargent le script (zip), en modifiant les variables comme stipulé dans le tutoriel puis j'ai envoyé le fichier tel quelle sur mon site sous Free.fr et je ne rencontre aucun problème...je reçois le mail ainsi que le récapitulatif. J'ai testé avec et sans le dossier "sessions". A mon avis, vous avez du supprimer des lignes qu'il ne fallait pas ^^.

    Note : le formulaire na rien à voir avec Mysql car il n’interagit pas avec une base de données.

  • #500 Commentaire de Kitsouné posté le 05/11/11 à 20:16:54 :
  • Kitsouné
  • Quelle rapidité !!!
    Bon... je suis à demi-rassurée... Chouette, je peux arréter de me casser la tête avec les commandes MySQL (qui entre nous est un monde obscur de termes terrorisants...), mais du coup... j'ai bel et bien un problème quelque part, et qui ne vient pas du script.
    Car ni le votre, ni l'ancien que j'utilisais... ne veulent fonctionner...
    L'adresse mail est pourtant valide... ;(

    Bon, je n'ai plus qu'à relire chaque ligne en éspérant sous le coup de l'inspiration trouver le problème.
    Merci encore. ^^

  • #501 Commentaire de c00lman posté le 05/11/11 à 21:25:47 :
  • c00lman
  • Je ne vois pas pourquoi ça ne fonctionne pas  !
    Envoyez moi par mail votre page que j'y jette un oeil.

    Note : rassurer moi, vous utilisez bien un fichier avec l'extension ".php" ?

  • #503 Commentaire de Muriel posté le 07/11/11 à 14:32:29 :
  • Muriel
  • Bonjour,
    Merci beaucoup pour ce script. Cependant je ne parviens pas à le faire fonctionner (j'ai fait qq modif sur le formulaire mais meme en faisant un copier-coller le mail n'est pas envoyé). Il se peut que ça soit une configuration du smtp mais là ça dépasse mes compétences. J'ai une page perso chez sfr, y a t il un truc spécial à faire? Ou alors y a une histoire de fichier phpinfo mais je ne sais meme pas à quoi il sert et s'il est necessaire.
    Merci bcp pr ton aide...

  • #516 Commentaire de Jean posté le 11/11/11 à 11:11:13 :
  • Jean
  • Bonjour et Merci de partager un formulaire bien fait et qui fonctionne.
    J'ai adapté votre code en fonction de mes besoins et j'ai un soucis avec lequel je galère.
    En effet je n'arrive pas à récuperer dans le mail les valeurs des variables tableaux: soit je n'ai rien ou alors j'ai un "array". J'utilise des variables tableaux pour les cases à cocher et la fonction 'if isset" pour réafficher la case cochée en cas de formulaire incomplet. Si vous avez une solution pour récupérer par email ce qu'il y a dans "superficie".
    Par avance Merci si quelqu'un pouvait me venir en aide...et un bon WE à tous....Bientôt 11h11 le 11/11/11...
     <label for="superficie">Superficie : </label> <!-- Intitulé du champ superficie -->
      Moins de 50m²<input type="radio" name="superficie[]" value="50m" <?php if (isset($_POST['superficie']) && is_array($_POST['superficie']) && in_array('50m',$_POST['superficie'])) echo 'checked="checked"'?> />
      Entre 50m² et 120m²<input type="radio" name="superficie[]" value="50m120" <?php if (isset($_POST['superficie']) && is_array($_POST['superficie']) && in_array('50m120',$_POST['superficie'])) echo 'checked="checked"'?> />
      Entre 120m² et 170m²<input type="radio" name="superficie[]" value="12m170" <?php if (isset($_POST['superficie']) && is_array($_POST['superficie']) && in_array('120m170',$_POST['superficie'])) echo 'checked="checked"'?> />
      Plus de 170m²<input type="radio" name="superficie[]" value="170m" <?php if (isset($_POST['superficie']) && is_array($_POST['superficie']) && in_array('170m',$_POST['superficie'])) echo 'checked="checked"'?> />

  • #517 Commentaire de c00lman posté le 11/11/11 à 12:02:45 :
  • c00lman
  • Bonjour jean,

    Dans le traitement des données il faut "boucler", par exemple :
    if(isset($_POST["Valider"]))
    {
        for ($i=0;$i<count($_POST['superficie']);$i++)
        {
            $valeur = $_POST['superficie'][$i];
            echo $valeur;
        }
    }

  • #518 Commentaire de Jean posté le 11/11/11 à 16:33:52 :
  • Jean
  • Merci C00lman pour ton aide,
    J'ai fait la boucle et en effet j'arrive a afficher la valeur de ma case à cocher mais je n'arrive tjrs pas à la renvoyer par mail de la même façon que le nom, prénom.....je recois du vide! j'ai essayé plusieurs choses du type §valeur, §valeur=§_post["valeur"],...mais rien n'y fait.....

  • #519 Commentaire de c00lman posté le 12/11/11 à 09:43:05 :
  • c00lman
  • Salut jean,

    Après la ligne
    $etat = "erreur";
    Tu ajoutes
         for ($i=0;$i<count($_POST['superficie']);$i++)
        {
            $superficie = $_POST['superficie'][$i];
            
        }
    En dessous de la ligne
        elseif (empty($_POST["son_message"])) { // L'utilsateur n'a écrit aucun message
            $erreur="Merci de saisir un message...";
        }
    Tu ajoutes
        elseif (empty($superficie)) { // L'utilsateur n'a rien coché
            $erreur="Merci de selectionner la surperficie...";
        }
    Dans les variables "$msg_pour_moi" et "$accuse_pour_lui" juste après la variable "- Message : \n $son_message", tu ajoutes " \n -Superficie : $superficie ".
    Pour finir, tu modifies tes champs de type "radio" de la façon suivante
    Moins de 50m²<input type="radio" name="superficie[]" value="50m"
      <?php if (isset($_POST['superficie']) && $superficie=="50m") echo 'checked="checked"'?> />
    Testé sans erreur et la superficie est bien envoyé :).

  • #520 Commentaire de Jean posté le 12/11/11 à 10:42:49 :
  • Jean
  • Merci C00lman pour votre patiente et dévouement,
    Je viens de tester votre travail et c'est super, j'ai exactement ce dont je voulais. C'est la que l'on vois la différence entre les Pro (vous) et les "tintins du net!" (moi)...encore une fois Merci et si cela peut vous être utile je passerai régulièrement sur votre site non pas pour vous embêter mais pour cliquer sur vos liens publicitaires.
    Cordialement.
    Jean

  • #521 Commentaire de c00lman posté le 12/11/11 à 18:21:20 :
  • c00lman
  • @jean : le site est fait pour aider à hauteur de mes connaissances. Je ne suis pas un pro. et j'ai encore moins la science infuse ;). Si je sais, je réponds, si je ne sais pas, je cherches et si vraiment je ne trouve pas, je renvois vers un autre site suceptible d'apporter la réponse.

    Ne venez pas spécialement pour cliquer sur mes pub... venez plutôt pour "m'enquiquiner" avec des questions :).
    @+

  • #524 Commentaire de jean posté le 14/11/11 à 15:01:10 :
  • jean
  • Bonjour c00lman,
    Hé oui c'est déja le retour du "Tintin du net", tu m'as enlevé une épine du pied mais il y en a plusieurs autres qui se sont plantés sur l'autre pied!!
    En fait je claque pour les essais mon programme brut sur mon site pour le tester (chez OVH), tout allait bien mais depuis plusieurs jours je recois les mails de mon test plusieurs heures apres et c'est assez génant en phase de test, si t'as une idée de ou cela peut venir.
    Un autre probléme est que je ne recoit plus l'accusé de récéption quand j'essaye mon programme et pourtant cela fonctionnait tres bien.
    Je met à la suite la grosse partie de mon programme, si tu vois des trucs qui clochent....
    <?php
    if (isset($_POST["envoyer"])){ // Si le formulaire a été soumis
     $etat = "erreur"; // On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur
     
     for ($i=0;$i<count($_POST['particulier']);$i++)
        {
            $particulier = $_POST['particulier'][$i];
           
        }
     
     
     for ($i=0;$i<count($_POST['civilite']);$i++)
        {
            $civilite = $_POST['civilite'][$i];
           
        }

    // On récupère les champs du formulaire, et on arrange leur mise en forme
     
     if (isset($_POST["nom"])) $_POST["nom"]=trim(stripslashes($_POST["nom"])); // trim()  enlève les espaces en début et fin de chaine
     
     if (isset($_POST["prenom"])) $_POST["prenom"]=trim(stripslashes($_POST["prenom"]));
     
     if (isset($_POST["adresse"])) $_POST["adresse"]=trim(stripslashes($_POST["adresse"]));
     
     if (isset($_POST["cp"])) $_POST["cp"]=trim(stripslashes($_POST["cp"]));
     
     if (isset($_POST["ville"])) $_POST["ville"]=trim(stripslashes($_POST["ville"]));
     
     if (isset($_POST["pays"])) $_POST["pays"]=trim(stripslashes($_POST["pays"]));
     
     if (isset($_POST["tel"])) $_POST["tel"]=trim(stripslashes($_POST["tel"]));

     if (isset($_POST["son_email"])) $_POST["son_email"]=trim(stripslashes($_POST["son_email"])); // stripslashes()  retire les backslashes  \' devient '
    // Après la mise en forme, on vérifie la validité des champs
     if (empty($_POST["nom"])) { // L'utilisateur n'a pas rempli le champ pseudo
      $erreur="Vous n'avez pas entr&eacute; votre nom..."; // On met dans erreur le message qui sera affiché
     }
     elseif (empty($_POST["son_email"])) { // L'utilisateur n'a pas rempli le champ email
      $erreur="Nous avons besoin de votre e-mail pour vous r&eacute;pondre...";
     }
     elseif (!preg_match("$[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["son_email"])){ // On vérifie si l'email est bien de la forme messagerie@domaine.tld (cf cours d'expressions régulières)
      $erreur="Votre adresse e-mail n'est pas valide...";
     else { // Si tous les champs sont valides, on change l'état à ok
      $etat="ok";
     }
    }
    else { // Sinon le formulaire n'a pas été soumis
     $etat="attente"; // On passe donc dans l'état attente
    }
     if (isset($_POST["son_email"])) $_POST["son_email"]=trim(stripslashes($_POST["son_email"])); // stripslashes()  retire les backslashes  \' devient '
    if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
     if ($etat=="erreur"){ // Cas où le formulaire a été soumis mais il y a des erreurs
      echo "<span style=\"color:red\">".$erreur."</span><br /><br />\n"; // On affiche le message correspondant à l'erreur
     }
    ?>
     <!-- Formulaire HTML qu'on affiche dans l'état attente ou erreur -->
       
       
     <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]; ?>" enctype="multipart/form-data"> <!-- Les données du formulaire seront récupérée avec la méthode POST, et action correspond à la page contenant le formulaire -->
     <p style="text-align:left">
    <label for="civilite">Civilit&eacute; : </label> <!-- Intitulé du champ civilité -->
      M.<input type="radio" name="civilite[]" value="Monsieur" id="Monsieur" <?php if (isset($_POST['civilite']) && $civilite=="Monsieur") echo 'checked="checked"'?> />
      Mlle<input type="radio" name="civilite[]" value="Mademoiselle" id="Mademoiselle" <?php if (isset($_POST['civilite']) && $civilite=="Mademoiselle") echo 'checked="checked"'?> />
      Mme<input type="radio" name="civilite[]" value="Madame" id="Madame" <?php if (isset($_POST['civilite']) && $civilite=="Madame") echo 'checked="checked"'?> />
     
    <br />
     
          
     <label for="nom">Nom : * </label> <!-- Intitulé du champ nom -->
     <input type="text" size="40" name="nom" id="nom" value="<?php
      if (!empty($_POST["nom"])) {
      // le pseudo de l'expéditeur a été saisi --> le réafficher
      echo htmlspecialchars($_POST["nom"],ENT_QUOTES); // htmlspecialchars() convertit les caractères spéciaux en leurs code html, exemple : & devient &amp;
      }
      ?>" />
     <br />
    <label for="son_email">E-mail :*</label>
     <!-- Intitulé du champ e-mail -->
     <input type="text" size="40" name="son_email" id="son_email" value="<?php
      if (!empty($_POST["son_email"])) {
      // l'e-mail de l'expéditeur a été saisi --> le réafficher
      echo htmlspecialchars($_POST["son_email"],ENT_QUOTES);
      }
      ?>" />
    </form>
       
     <!-- FIN du formulaire HTML -->
     <?php
    }
    else { // Sinon l'état est ok donc on envoie le mail
     
     $nom = $_POST["nom"]; // On stocke les variables récupérées du formulaire
     $prenom = $_POST["prenom"];
     $adresse = $_POST["adresse"];
     $cp = $_POST["cp"];
     $ville = $_POST["ville"];
     $pays = $_POST["pays"];
     $tel = $_POST["tel"];
     $son_email = $_POST["son_email"];
     $son_message = $_POST["son_message"];
     $mon_email = "tartempion@free.fr,le.frere.de.tartempion@free.fr"; // Mise en forme du message que vous recevrez
     $mon_pseudo = "Batmann";
     $mon_url = "http://www.batmann.fr";
     $msg_pour_moi = "
     - Demande faite par un : $particulier \n
     - Civilité : $civilite \n
     - Nom:$nom \n
     - Prénom : $prenom \n
     - Adresse : $adresse \n
     - CP : $cp \n
     - Localité : $ville \n
     - Pays : $pays \n
     - Tel : $tel \n
     - Mail : $son_email \n
     - Devis pour : $devis \n
     - Superficie : $superficie \n
     - Construction : $construction \n
     - Plain pied ou étage? $etage \n
     - Avec sous sol?  $soussol \n
     - Message : \n $son_message \n\n";


    // Mise en forme de l'accusé réception qu'il recevra
     $accuse_pour_lui = "Bonjour $civilite $nom\n
     Votre message nous a bien été envoyé et nous tâcherons de vous répondre le plus rapidement possible.\n\n
     Merci et à bientôt sur http://batmann.fr !";
     // Envoie du mail
     $entete = "From: " . $mon_pseudo . " <" . $mon_email . ">\n"; // On prépare l'entête du message
     $entete .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
     $entete .='Content-Transfer-Encoding: 8bit';
     if (@mail($mon_email,$son_objet,$msg_pour_moi,$entete) && @mail($son_email,$son_objet,$accuse_pour_lui,$entete)){ // Si le mail a été envoyé
      echo "<p style=\"text-align:center\">Votre message a &eacute;t&eacute; envoy&eacute;, vous recevrez une confirmation par mail.<br /><br />\n"; // On affiche un message de confirmation
      echo "<a href=\"" . $mon_url . "\">Retour</a></p>\n"; // Avec un lien de retour vers l'accueil du site
     }
     else { // Sinon il y a eu une erreur lors de l'envoi
      echo "<p style=\"text-align:center\">Un problème s'est produit lors de l'envoi du message.\n";
      echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a></p>\n"; // On propose un lien de retour vers le formulaire
     }
    }
    ?>

  • #525 Commentaire de c00lman posté le 14/11/11 à 20:15:21 :
  • c00lman
  • Bonsoir jean,

    Il y à plusieurs soucis sur ton formulaire...
    Primo, il est incomplet.
    Secondo, ligne 43
    $erreur="Votre adresse e-mail n'est pas valide...";
    ..il te manque un }.
    Tierco, ligne 51
    if (isset($_POST["son_email"])) $_POST["son_email"]=trim(stripslashes($_POST["son_email"])); // stripslashes() retire les backslashes \' devient '
    ..cette ligne est en trop.

    Comme le code est incomplet, je ne peux pas te fournir plus d'explication.

  • #526 Commentaire de jean posté le 15/11/11 à 15:37:53 :
  • jean
  • Merci c00lman d'avoir pris le temps de regarder. Les erreurs que tu as vues viennent de mon copier/coller, je vais reprendre ton code d'origine et y inserer un peu à la fois mes modifs et j'en profiterais également pour faire le ménage dans mon code.
    Encore une fois Merci et des que j'ai un soucis je te fais signe.
    Cordialement.
    Jean 

  • #529 Commentaire de jean posté le 18/11/11 à 12:21:35 :
  • jean
  • Salut c00lman,
    j'ai refait mon formulaire à partir du tien et de tes conseils, c'est IMPEC!
    La seule chose que je n'arrive pas à faire c'est d'envoyer le mail à 2 destinataires, j'ai essayé de séparer les 2 adresses par une virgule dans $mon_email mais ca fonctionne pas, si jamais t'as une idée....et encore merci pour tout...
    Cordialement.

  • #530 Commentaire de c00lman posté le 18/11/11 à 15:09:01 :
  • c00lman
  • Salut Jean,
    Je vois 2 possibilités :
    Soit tu ajoutes une variable "$second_destinataire" soit tu ajoutes directement le mail dans l'envoie.

    Avec variable:
    $second_destinataire="email@free.fr";
    if (@mail($mon_email,$son_objet,$msg_pour_moi,$entete) && @mail($son_email,$son_objet,$accuse_pour_lui,$entete) && @mail($second_destinataire,$son_objet,$msg_pour_moi,$entete))

    Sans variable:
    if (@mail($mon_email,$son_objet,$msg_pour_moi,$entete) && @mail($son_email,$son_objet,$accuse_pour_lui,$entete) && @mail("email@free.fr",$son_objet,$msg_pour_moi,$entete))
    Note : Je n'ai pas testé !

  • #533 Commentaire de jean posté le 21/11/11 à 15:08:56 :
  • jean
  • Salut C00lmann,
    Merci pour les 2 solutions, je les ai testées toutes les 2: la premiere envoi le mail au premier destinataire mais pas à celui ajouté quant à la 2eme solution elle n'envoi rien. Mon formulaire est en ligne et je fais un transfert des messages sur la seconde boite , je vais encore essayer d'autres solutions.
    Cordialement (Signé: Le Tintin du net...)

  • #534 Commentaire de c00lman posté le 21/11/11 à 17:13:08 :
  • c00lman
  • Salut Jean,

    Voci ce que je viens de tester à l'instant sous Wamp :
     if (@mail($mon_email,$son_objet,$msg_pour_moi,$entete) && @mail($son_email,$son_objet,$accuse_pour_lui,$entete) && @mail("email@toto.com",$son_objet,$msg_pour_moi,$entete)){
    ...et ça fonctionne sans problème!

    Ps: enlève les @ devant les fonctions mail pour voir si tu n'as pas une erreur.

  • #535 Commentaire de jean posté le 21/11/11 à 19:03:05 :
  • jean
  • Merci c00lman, je viens d'essayer et c'est "tip top" encore un grand Merci ainsi qu'une agréable soirée...

  • #539 Commentaire de jean posté le 24/11/11 à 16:07:21 :
  • jean
  • Salut c00lman,
    j'ai placé une liste déroulante dans mon formulaire, elle fonctionne bien mais est il possible de ré afficher sa valeur en cas de saisie incorrecte. J'ai cherché sur le net mais pour l'instant je n'ai trouvé que des usines à gaz!
    Je suis comme d'habitude interressé pas tes idées.
    Cordialement.
    Le Tintin du net.

     for ($i=0;$i<count($_POST['modele']);$i++)
        {
          $modele = $_POST['modele'][$i];
           
        }

    .
    .
     <label>  Modèle de construction : </label>
        <select name="modele[]">
        <option value="Antique">Antique</option>
        <option value="Atoll">Atoll</option>
        <option value="Aurore">Aurore</option>
        <option value="Capucine">Capucine</option>
    </select>

  • #540 Commentaire de c00lman posté le 24/11/11 à 18:58:21 :
  • c00lman
  • Salut Jean,

    Je ne sais pas si ce que je vais te proposer fait partie des usines à gaz mais c'est comme ça que je ferais :
        <select name="modele[]">
        <option value="Antique" <?php if (isset($modele) && $modele=="Antique") echo 'selected=selected';?>>Antique</option>
        <option value="Atoll" <?php if (isset($modele) && $modele=="Atoll") echo 'selected=selected';?>>Atoll</option>
        <option value="Aurore" <?php if (isset($modele) && $modele=="Aurore") echo 'selected=selected';?>>Aurore</option>
        <option value="Capucine" <?php if (isset($modele) && $modele=="Capucine") echo 'selected=selected';?>>Capucine</option>
        </select>

    Petite explication :

    Comme dans ta boucle for() tu récupères la valeur de ton formulaire déroulant dans la variable $modele, tu t'en sert pour comparer directement dans celui-ci.
    if(isset($modele) » si la variable $modele existe.
    && $modele=="Antique") » et que la variable $modele est strictement égal à Antique.
    echo 'selected=selected'; » on ré-affiche la selection.

  • #541 Commentaire de jean posté le 24/11/11 à 19:18:24 :
  • jean
  • Merci c00lman,
    C'est pas une usine à gaz, c'est clair et en plus avec des explications et ça fonctionne sans probleme!
    Encore une fois Merci et bonne soirée...

  • #564 Commentaire de isabelle posté le 22/12/11 à 17:10:24 :
  • isabelle
  • Bonjour ,

    J'ai essayé d'installer le formulaire et j'ai un message d'erreur qui apparait lorsque je l'heberge sur mon site...
    "Parse error: syntax error, unexpected T_STRING, expecting ']' in nomdemondossier on line 152

    Désolée mais je ne m'y connais pas trop en php

  • #565 Commentaire de c00lman posté le 22/12/11 à 17:30:54 :
  • c00lman
  • Bonjour isabelle,

    Le soucis c'est qu'il ni y pas 152 lignes dans le formulaire alors je vais avoir un peut de mal à trouver l'erreur:)!

    Envoyez moi par mail votre fichier que j'y jette un oeil.

  • #566 Commentaire de isabelle posté le 22/12/11 à 18:37:48 :
  • isabelle
  • Oui c'est pour ça que je ne comprends pas. Heu je ne connais pas l'adresse mail :$

  • #567 Commentaire de c00lman posté le 23/12/11 à 09:38:54 :
  • c00lman
  • Mon adresse mail se trouve dans le mail que vous recevez quand une réponse est posté:P ou quand votre commentaire est accepté.

    Ps : Envoyez moi le fichier sur lequel vous travaillez, ne postez pas votre code directement dans le mail car c'est illisible.

  • #585 Commentaire de kalof posté le 10/01/12 à 21:53:44 :
  • kalof
  • Bonjour,

    Je debute.. j'ai recopier et remplacer les champs mais me voila avec un code d'erreur..

     Parse error: syntax error, unexpected $end in /mnt/104/sdb/a/c/kalof/formulaire.php on line 118

    Merci d'avance :)

  • #586 Commentaire de c00lman posté le 11/01/12 à 10:17:19 :
  • c00lman
  • Bonjour kalof,

    C'est normal car quand vous faites un simple copié/collé du script, une grande partie du code est interprété comme étant du commentaire. Téléchargez directement l'archive.

  • #587 Commentaire de kalof posté le 11/01/12 à 15:02:48 :
  • kalof
  • Merci beaucoup, tout fonctionne ! :)