Posez votre question Signaler

Formulaire de contact pour site internet

Schumi513 9Messages postés 6 avril 2009Date d'inscription - Dernière réponse le 25 avril 2009 à 15:11
Bonjour,
Je suis un débutant (un vrai de vrai débutant) en matière de conception de site internet.
j'ai commencé à concevoir mon site internet via Dreamweaver. J'ai ajouté dans ma page internet un formulaire de contact.
Le formulaire de contact contient les élements suivants:
NOM
Prénom
Adresse email
Description du problème
Pièce jointe 1
Pièce jointe 2
Pièce jointe 3
Et un bouton envoyer. Dans le code HTLM, au niveau de l'action j'ai mis mailto: et une adresse email.
Malheureusement mon formulaire internet ne fonctionne pas. Je ne comprends pas pourquoi.
A chaque fois que que j'appuie sur ENVOYER, ma messagere OUTLOOK S'ouvre. Impossible d'envoyer le contenu du formulaire depuis la page internet.
QUe faire?
Pourriez vous svp m'expliquer (idéalement me donner le code à ajouter dans ma page et où le placer) comment réaliser le formulaire que je souhaite de la façon la plus simple possible?
Je souhaiterais aussi avoir une page de remerciement (une fois que l'utilisateur a appuyé sur envoyer). Comment faire?
Sur internet j'ai trouvé une multitude de sites qui traitent de mon problème...cependant je ne comprends jamais les solutions. On me parle de PHP etc..
Serait il possible d'avoir une explication ULTRA SIMPLE (digne d'une explication pour un enfant de 5 ans :-) lol)
En vous remerciant d'avance
Lire la suite 

Formulaire de contact pour site internet »

19 réponses
Réponse
+2
moins plus
Remplace ton formulaire (de <form> à </form>) par ce script :
<?php
if(!empty($_POST))
{
    $error = 0;
    $text_erreur = '';
    
    if(empty($_POST['nom'])) {
        $error++;
        $text_erreur .= 'Le champs "Nom" est vide<br/>';
    }
    if(empty($_POST['prenom'])) {
        $error++;
        $text_erreur .= 'Le champs "Prénom" est vide<br/>';
    }
    if(!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i", $_POST['mail']))
    {
        $error++;
        $text_erreur .= 'L\'adresse e-mail est invalide<br/>';
    }
    if(empty($_POST['description'])) {
        $error++;
        $text_erreur .= 'Le champs "Description" est vide<br/>';
    }
    
    if($error > 0)
    {
        echo 'Il y a '.$error.' erreur(s) :<br/>'.$text_erreur ;
    }
    else
    {
        $Name = stripslashes($_POST['nom']).' '.stripslashes($_POST['prenom']) ;
        $email = $_POST['mail'];
        $recipient = 'dylanjan313@hotmail.com' ;
        $mail_body = stripslashes($_POST['description']) ;
        $subject = 'Rapport de problème' ;
        $header = "From: ". $Name . " <" . $email . ">\r\n";

        $mail_fonction = mail($recipient, $subject, $mail_body, $header);
        
        //Si le mail est bien envoyé
        if($mail_fonction == true)
        {
          echo '<p style="color:green;">Le mail a bien été envoyé.<br/></p>';
        }
        else
        {
          echo '<p style="color:red">Erreur lors de l\'envoie du mail !<br/></p>';
        }
    }
}
else
{
?>
<form method="post" action="">
    <fieldset>
    
        <p>
            <label for="nom">Nom</label>
            <input type="text" name="nom" id="nom" />
        </p>
        
        <p>
            <label for="prenom">Prénom</label>
            <input type="text" name="prenom" id="prenom" />
        </p>
        
        <p>
            <label for="mail">Adresse e-mail</label>
            <input type="text" name="mail" id="mail" />
        </p>
        
        <p>
            <label for="description">Description</label>
            <textarea name="description" id="description" cols="45" rows="10">Décrivez précisément le problème</textarea>
        </p>
        
        <p>
            <input type="submit" value="Envoyer" />
        </p>
    </fieldset>
</form>
<?php
}
?>


N'oublie pas de renommer ton fichier avec l'extension .php au lieu de .html et n'essaye pas de lancer le fichier quand il est sur ton PC (ça ne fonctionne qu'une fois sur le serveur).
Schumi513- 8 avril 2009 à 23:07
Hello Hello

c'est encore moi.
Je viens de tester le formulaire. Mais malheureusement....il ne semble pas fonctionner.
Quand je clique sur envoyer...le message n'arrive pas dans ma messagerie :-(
Est ce qu'il manque quelque chose ds le code?

De plus, dans le code, j'ai l'impression que tu as mis certains controles (style controle sur l'adresse de l'expediteur etc.) et ici il n'y a pas de controle. Je peux cliquer sur envoyer alors que le formulaire est completement vide et ca n'a pas l'air de l'embeter enormément...

D'avance merci pour ton retour,

cdt
avion-f16- 9 avril 2009 à 16:22
J'ai tester le script (c'est d'ailleur pour ça qu'il y avait mon adresse mail) et ça fonctionne parfaitement. Il se peut que le mail ce place dans le dossier indésirables (ce que fais Hotmail).

Que veux-tu dire par "des contrôles sur l'adresse de l'expéditeur" ? [a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4} permet de vérifier si c'est bien une adresse mail qui est donnée.

Pour que ça fonctionne, il faut que le fichier ai l'extension .php au lieu de .html et qu'il soit sur le serveur (le FTP si tu préfère).

Je vais refaire le script afin de donne la possibilité de mettre des pièces jointes.
mdamvivi - 22 avril 2009 à 11:21
Bonjour

Simplement un grand merci ! Je débute aussi en webmastering sur dreamweaver... Mes boss m'ont réclamé un formulaire de contact pour notre site web. J'ai trouvé ce post, et me suis permise de récupérer le code proposé. en suivant tes conseils cela fonctionne à merveille.

Merci encore
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour,

si tu n'as aucune connaissance en PHP ça va être dure !
Là je vais devoir y aller mais dés que je vais sur le PC, je te crées un petit script PHP où tu n'auras qu'à modifier ton adresse mail (formulaire compris).
Ajouter un commentaire
Réponse
+0
moins plus
Salut avion F-16

Trop cool de ta part. Je suis preneur d'un petit script php tout fait.
Pourras tu aussi m'expliquer entre quelles balises HTML je dois placer le script pout que cela fonctionne bien?

D'avance un grand merci pour ton aide,
avion-f16- 8 avril 2009 à 12:59
Je vais te fournir le script complet ne t'inquiète pas pour ça.
D'ailleur, je vais me mettre au travail ;)

Par contre, un site Web n'est pas un client de messagerie donc pour les pièces jointes, c'est autre chose mais si tu les veux à tout prix, dis-le.
Ajouter un commentaire
Réponse
+0
moins plus
ce ne sera pas des balises HTML ou il faudra mettre ce script mais des balises <php? ET ?> mais ne t'inquiète pas ces balise vont-être fourni avec le script ;)

Bonne chance
Ajouter un commentaire
Réponse
+0
moins plus
Je viens de terminé le script avec maintenant la possibilité de mettre des pièces jointes.

Je ne vais pas copier/coller le code directement sur ce message (il fait 156 lignes) donc télécharge le en cliquant ici
Ajouter un commentaire
Réponse
+0
moins plus
Salut avion F16,


Tout d'abord un grand merci pour ton aide et ta réalisation.
Je viens de retester....et malheureusement, cela ne fonctionne tjs pas. Les messages n'arrivent pas dans ma boite mail.

Je me permets (en espérant que cela ne t'embete pas) de t'envoyer ma page web afin que tu puisses examiner le code et reperer où cela coince. Comme il n'y pas de quoi charger un fichier sur le forum je te le l'envoie sur ton adresse email (je t'enverrai cela avec mon adresse jeralepourvous@neuf.fr). J'espère que cela ne t'ennuie pas.

Pour ce qui est du dossier à créer pour récuperer les fichiers joints, je n'ai pas tres bien compris le passage sur
"Une fois que tu as paramétrer ces variables, tu crées un dossier portant le même nom que $dossier_up et tu lui met un CHMOD de 777 (Clic droit -> Attributs sous FileZilla)"

En fait j'utilise un FTP en ligne du type ftpperso.sfr.fr (je sais c'est pas pro...mais c'est ce qui caractérise les vrais debutants). J'ai créer un dossier "container" et j'ai changer les variables comme tu me l'as dit.
Ajouter un commentaire
Réponse
+0
moins plus
Je viens de trouver l'erreur : Tu avais laisser tes balises <form> et </form> ... je ne vais pas rentrer dans les détails pour t'expliquer l'erreur que ça provoquait.

Voici le script corrigé : Mail.zip
(il faut encore que tu modifies ton adresse, le dossier et l'url du dossier).
Ajouter un commentaire
Réponse
+0
moins plus
Aie aie aie....
je sens que tu vas me détester...mais ca marche pas :-(
J'ai carrément repris ta page .php telle que tu me l'as envoyée. J'ai modifié l'url etc...et lorsque je fais un test en ligne (donc un test grandeur nature), j'ai le message d'erreur suivant qui apparait directement sur la page:




"Warning: mail() has been disabled for security reasons in /var/www/j/je/jer/jeralepourvous.perso.neuf.fr/public_html/Deposerundossier.php on line 144

Erreur lors de l'envoie du mail !"


Est ce que cela vient du code? ou de l'hebergeur?
Je comprends pas parce que j'ai pourtant bien reçu ton message ds mon adresse email....Ton test a fonctionné mais pas le mien...

Est ce que ce message d'erreur te parle? d'avance merci pour ta reponse,
avion-f16- 11 avril 2009 à 17:39
En gros, l'erreur dis que l'hébergeur à désactiver la fonction mail() (qui comme tu l'as sûrement deviné sert à envoyer des mails ^^). La seule solution et de changer d'hébergeur.

Sinon les fichiers se placent bien dans le dossier ?
Ajouter un commentaire
Réponse
+0
moins plus
hello,

Oui les fichiers arrivent bien dans le dossier (ils changent de nom par contre...mais bon ce n'est pas tres important).
Par contre, comment peut on faire pour qu'apres l'envoie, une page de remerciement s'affiche?


Pour le problème des mails, je suppose qu'il faut donc que je change d'hebergeur?

Connais tu un bon hebergeur gratuit où je ne risque pas d'avoir ce genre de problème?

d'avance merci,
Ajouter un commentaire
Réponse
+0
moins plus
ils changent de nom par contre : Je l'ai fais exprés parce que si un fichier portant le même nom qu'un autre arrive, l'ancien sera écrase. Ainsi, chaque fichier a un nom unique.

Pour l'hébergement, je connais E3b
Ajouter un commentaire
Réponse
+0
moins plus
Merci beaucoup.
Je vais essayer dans le courant de la semaine. Je te tiens au courant pour te dire si cela fonctionne bien ou pas.
Un grand merci,
Ajouter un commentaire
Réponse
+0
moins plus
Salut avion F-16,

dsl je reponds super tard mais j'etais en vacances...

Alors j'ai changé d'hébergeur et j'ai reessayé avec ton formulaire....et....ca marche!!!!!! trop de la balle.
La pièce jointe et le mail fonctionnent à merveille! Un big merci!

La seul petit developpement qui serait pas mal, serait de créer une règle pour faire apparaitre une page de remerciement lorsque l'utilisateur a envoyé son formulaire...

qqn sait comment cela marche?
Ajouter un commentaire
Réponse
+0
moins plus
Si tu regarde +/- au milieu, tu verras :
echo '<p style="color:green;">Le mail a bien été envoyé.<br/></p>';


Il te suffit de modifier ce qu'il y a entre '

PS : Si ton message contient des apostrophes ( ' ), ajoute un anti-slashe ( \ ) devant (ex : Je m\'appelle)
Ajouter un commentaire
Ce document intitulé « Formulaire de contact pour site internet » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?