Rechercher : dans
Par :

Formulaire de contact

Dernière réponse le 27 jan 2009 à 09:47:32 Jay-Jay, le 26 oct 2005 à 11:11:15 
 Signaler ce message aux modérateurs

Bonjour voila je vien de créer un formaulaire de contact en 2 fichier php mais malheureusement ca n'envoi pas sur mon email voici les code si qqun peut m'aider :

contact.php

<html>
<head>
<title>Contact</title>
<style type="text/css">
form label{display:block;float:left;clear:left;width:100px;text-align:right;vertical-align:top;margin:5px 0}
#userInput textarea,
#userInput input {margin:5px 2px;border:1px solid #000;vertical-align:top}
#formFooter {margin-left:100px}
#formFooter input {margin:5px 2px;}
</style>
</head>
<body>

<div id="body">

<div id="content">
<h2>Me contacter</h2>


<form action="mail.php" method="post">
<p id="userInput">
<label for="name">Vous êtes : </label>
<input type="text" name="Name" id="Name"/>
<br />
<label for="email">Votre email : </label>

<input type="text" name="Email" id="Email"/>
<br />
<label for="subject">Sujet : </label>
<input type="text" id="Sujet" name="Sujet"/>
<br />
<label for="message">Message : </label>
<textarea name="Message" id="Message" rows="10" cols="40"></textarea>
</p>

<p id="formFooter">
<input type="submit" value="Envoyer" />
</p>
</form>
</div>

</div>
</center>
</body>
</html>


mail.php

<?php
if($send =="envoi")
{
if($Name =="")
{
// On verifie le nom
echo("Le champ Nom est vide !");
}
else
{
if($Message =="")
{
// On verifie le message
echo("Le champ Message est vide !");
}
else
{
// On verifie le sujet
if($Sujet =="")
{
echo("Le champ sujet est vide !");
}
else
{
// On verifie l'email
if($Email =="")
{
echo("Le champ email est vide !");
}
else
{
// si tout a été remplie, on envoi
mail("jayjay14@free.fr",$Sujet,$Message,$Name,"From: ".$Email);
echo("Votre message a bien été envoyé");
}
}
}
}
}
?>

<html>
<head>
<title>Contact</title>
<style type="text/css">
form label{display:block;float:left;clear:left;width:100px;text-align:right;vertical-align:top;margin:5px 0}
#userInput textarea,
#userInput input {margin:5px 2px;border:1px solid #000;vertical-align:top}
#formFooter {margin-left:100px}
#formFooter input {margin:5px 2px;}
</style>
</head>
<body>

<div id="body">

<div id="content">
<h2>Me contacter</h2>


<form action="mail.php" method="post">
<p id="userInput">
<label for="name">Vous êtes : </label>
<input type="text" name="Name" id="Name"/>
<br />
<label for="email">Votre email : </label>

<input type="text" name="Email" id="Email"/>
<br />
<label for="subject">Sujet : </label>
<input type="text" id="Sujet" name="Sujet"/>
<br />
<label for="message">Message : </label>
<textarea name="Message" id="Message" rows="10" cols="40"></textarea>
</p>

<p id="formFooter">
<input type="submit" value="Envoyer" />
</p>
</form>
</div>

</div>
</center>
</body>
</html>

merci d'avance

Meilleures réponses pour « formulaire de contact » dans :

1

Erdnax, le 26 oct 2005 à 11:27:50

Salut,

Premièrement, est-ce volontaire d'avoir collé deux fois le fichier contact.php ?

Ensuite, dans ton fichier mail.php, il faut que tu récupère les données transmises par post AVANT des les utiliser. ($_POST['cequetuveux'])

Attends deux secondes, je te corrige déjà un bout.

;o)
Dur dur la rentrée...

Répondre à Erdnax

2

wiwimagique, le 26 oct 2005 à 11:28:32

La condition $send=="envoie" est-elle vérifiée au moins ?
je ne vois rien qui s'appelle send ...

Dans sa voiture rouge et jaune

Répondre à wiwimagique

3

Erdnax, le 26 oct 2005 à 11:31:25
  • +1

Tiens, essaye ça :

<?php 
// Récupération des données transmises par POST
$Name = $_POST['Name'];
$Message = $_POST['Message'];
$Sujet = $_POST['Sujet'];
$Email = $_POST['Email'];

  if($Name ==""){ 
    // On verifie le nom 
    echo("Le champ Nom est vide !"); 
  } 
  else{ 
    if($Message ==""){ 
      // On verifie le message 
      echo("Le champ Message est vide !"); 
    } 
    else{ 
      // On verifie le sujet 
      if($Sujet ==""){ 
        echo("Le champ sujet est vide !"); 
      } 
      else{ 
        // On verifie l'email 
        if($Email ==""){ 
          echo("Le champ email est vide !"); 
        } 
        else{ 
          // si tout a été remplie, on envoi 
          mail("jayjay14@free.fr",$Sujet,$Message,$Name,"From: ".$Email); 
          echo("Votre message a bien été envoyé"); 
        }
      } 
    } 
  } 
?> 

Dur dur la rentrée...

Répondre à Erdnax

4

Jay-Jay, le 26 oct 2005 à 11:34:28

Je ne l'ai pas coller simplement il ya 2 fichiers contact.php puis mail.php
merci pour ta correction vais essayer ca :)

Répondre à Jay-Jay

5

Jay-Jay, le 26 oct 2005 à 11:38:36

Ca marche tjs pas :(

Répondre à Jay-Jay

6

Erdnax, le 26 oct 2005 à 11:41:56

Tu as un message d'erreur ou quelque chose ?`

Et pourquoi y a-t-il 2 fichiers contact en fait, j'ai pas trop compris...
Dur dur la rentrée...

Répondre à Erdnax

8

wiwimagique, le 26 oct 2005 à 11:48:43

Ca ne marche pas, ça veut dire :

Tu as un message d'erreur ?
Tu as le message de réussite ?
Tu n'as aucun message ?
Tu as un message système ?

tu as enlevé le $send=="envoie" ?
Dans sa voiture rouge et jaune

Répondre à wiwimagique

7

Jay-Jay, le 26 oct 2005 à 11:46:52

Voila ce qui s'affiche en haut de mon formulaire :

Warning: mail(): Nombre de parametres incorrects in /var/www/free.fr/c/9/jayjay14/DB/mail.php on line 29
Votre message a bien été envoyé

pour les 2 fichiers je sais pas trop non plus j'ai trouver ca sur un site comme j'apprend tres doucement le php donc j'ai suivi la methode a peu pres sur ce site
http://www.webdiz.com/coursphp/form2mail.php

si tu veux voir mon formulaire c'est la
http://jayjay14.free.fr/DB/contact.php

Répondre à Jay-Jay

9

wiwimagique, le 26 oct 2005 à 11:50:06

Oui, en effet
regarde un peu ici :

http://fr.php.net/mail

Dans sa voiture rouge et jaune

Répondre à wiwimagique

11

Jay-Jay, le 26 oct 2005 à 11:57:59

Euh je dois comprendre quoi par ce lien ^o)

Répondre à Jay-Jay

14

wiwimagique, le 26 oct 2005 à 12:04:27

Elle décrit la fonction mail, qui a bien planté chez toi :-D

En fait, Ednax t'as déjà répondu : t'as même pas eu besoin de lire :p

En fait, tu vois que la fonction mail() accepte 4 arguments comme suit :

mail ($emailArrivee, $sujet, $message, $entete); l'entete contenant l'email de l'envoyeur.

Dans ton cas, tu as mis 5 arguements, suite à une faute de frappe j'imagine. php ne comprend pas ce qu'il doit faire du 5e paramètre et t'envoit donc une erreur.

voili voilou
Dans sa voiture rouge et jaune

Répondre à wiwimagique

12

Erdnax, le 26 oct 2005 à 11:59:45

Sache que le site que wiwimagique te propose est la bible du développeur php.

Tu trouvera toutes les infos pour développer tes scripts expliquant les fonctions, des astuces etc.

Il peu parraître un peu rude au premier abord, mais il est super complet et inévitable si tu veux utiliser php.

;) Moi chuis moi et toi chais pas...

Répondre à Erdnax

15

jay-jay, le 26 oct 2005 à 12:05:05

Je prend note alors mais c'est clair que pour moi ki n'en ai jamais fait ca a l'air corsé! lol

Répondre à jay-jay

10

Erdnax, le 26 oct 2005 à 11:53:59

Effectivement, il faut que tu regrouppes le nom de l'expéditeur dans ton message, sinon, php ne comprendra pas le paramètres. Il n'est pas correct pour lui.

Fais quelque chose du style :

$Message .= "

$Nom";

Ce qui donne :
<?php 
// Récupération des données transmises par POST
$Name = $_POST['Name'];
$Message = $_POST['Message'];
$Message .= "

$Name";
$Sujet = $_POST['Sujet'];
$Email = $_POST['Email'];

  if($Name ==""){ 
    // On verifie le nom 
    echo("Le champ Nom est vide !"); 
  } 
  else{ 
    if($Message ==""){ 
      // On verifie le message 
      echo("Le champ Message est vide !"); 
    } 
    else{ 
      // On verifie le sujet 
      if($Sujet ==""){ 
        echo("Le champ sujet est vide !"); 
      } 
      else{ 
        // On verifie l'email 
        if($Email ==""){ 
          echo("Le champ email est vide !"); 
        } 
        else{ 
          // si tout a été remplie, on envoi 
          mail("jayjay14@free.fr",$Sujet,$Message,"From: ".$Email); 
          echo("Votre message a bien été envoyé"); 
        }
      } 
    } 
  } 
?>
Dur dur la rentrée...

Répondre à Erdnax

13

jay-jay, le 26 oct 2005 à 12:04:02

MErci bcp Erdnax tu es mon heros :D ca fonctionne nikel..si je profite de toi pour rajouter un truc du style mettre des pieces jointes au mess j'abuse?

Répondre à jay-jay

17

Erdnax, le 26 oct 2005 à 12:08:16

Dans un premier temps à mon avis si tu veux améliorer ton script, et là je te laisse chercher, je vais quand même pas faire ton site à ta place, je te conseil de vérifier que l'adresse email entrée non seulement n'est pas vide, mais qu'elle contient un "@", un ".", et au moins 6 caractères ;)

D'autres améliorations pourront être imaginées avant la pièce jointe, car si tu est débutant, c'est déjà un niveau un peu élevé pour toi, rien ne sert de courir, il faut partir en bas (comment ça c'est pas ça ?!?!).

Gravit les échelons par étape, commence par comprendre ce qu'on a fait, pourquoi, et tu verra la satisfaction que tu as lorsque les scripts sont 100% de toi ;)

@+
Moi chuis moi et toi chais pas...

Répondre à Erdnax

21

Jay-Jay, le 26 oct 2005 à 22:48:45

Voila j'ai rajouté ca pour tester l'adresse mail c'est pas terrible car meme si l'adresse mail est non valide le message s'envoie kan meme ou est l'erreur?


<?php
function checkEmail($Email)
{
if(eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $Email))
{
return FALSE;
}
list($Username, $Domain) = split("@",$Email);
if(getmxrr($Domain, $MXHost))
{
return TRUE;
}
else
{
if(fsockopen($Domain, 25, $errno, $errstr, 30))
{
return TRUE;
}
else
{
return FALSE;
}
}
}
?>
<?php

// Récupération des données transmises par POST
$Name = $_POST['Name'];
$Message = $_POST['Message'];
$Message .= "

$Name";
$Sujet = $_POST['Sujet'];
$Email = $_POST['Email'];

if($Name ==""){
// On verifie le nom
echo("Le champ Nom est vide !");
}
else{
if($Message ==""){
// On verifie le message
echo("Le champ Message est vide !");
}
else{
// On verifie le sujet
if($Sujet ==""){
echo("Le champ sujet est vide !");
}
else{
// On verifie l'email
if(checkEmail($Email) == FALSE)
{
echo "L'adresse E-mail n'est pas valide \n";
}
else
{
echo "L'adresse E-mail est valide \n" ;
}

if($Email ==""){
echo("Le champ email est vide !");
}
else{
// si tout a été remplie, on envoi
mail("jayjay14@free.fr",$Sujet,$Message,"From: ".$Email);
echo("Votre message a bien été envoyé");
}

}
}
}
?>
<html>
<head>
<title>Contact</title>
<style type="text/css">
form label{display:block;float:left;clear:left;width:100px;text-align:right;vertical-align:top;margin:5px 0}
#userInput textarea,
#userInput input {margin:5px 2px;border:1px solid #000;vertical-align:top}
#formFooter {margin-left:100px}
#formFooter input {margin:5px 2px;}
</style>
</head>
<body bgcolor="#D8BFD8">
<div id="body">

<div id="content">
<h2 align="center">Me contacter</h2>


<form action="mail.php" method="post">
<p id="userInput">
<label for="name">Vous êtes : </label>
<input type="text" name="Name" id="Name">
<br>
<label for="email">Votre email : </label>

<input type="text" name="Email" id="Email">
<br>
<label for="subject">Sujet : </label>
<input type="text" id="Sujet" name="Sujet">
<br>
<label for="message">Message : </label>
<textarea name="Message" id="Message" rows="10" cols="40"></textarea>
</p>

<p id="formFooter">
<input type="submit" value="Envoyer">
<input type="reset" value="Recommencer">
<br><br><a href="http://jayjay14.free.fr/DB/l-univers-de-dragonball.html">Retour à l'accueil</a>

</p>
</form>
</div>

</div>
</center>
</body>
</html>

Répondre à Jay-Jay

16

wiwimagique, le 26 oct 2005 à 12:07:36

C'est un peu compliqué à faire pour les fichiers attachés.
Mais il existe des librairies toutes faites que tu peux trouver sur internet pour cela.

par exemple :
http://www.nexen.net/scripts/details.php?scripts=425

(excellent site au passage :) )
Dans sa voiture rouge et jaune

Répondre à wiwimagique

19

wiwimagique, le 26 oct 2005 à 12:14:30

Enfin, dans ce cas précis, ce n'est pas une classe mais une exemple de code.

Mais ce que dit Erdnax est vrai. Il vaut mieux faire des choses à ta portée d'abord, même si ce n'est pas aussi évolué que tu le souhaites.
Recopier le code tout fait, sans comprendre, ne te permettra pas de l'adapter à tes besoins de toute façon.
Dans sa voiture rouge et jaune

Répondre à wiwimagique

20

jay-jay, le 26 oct 2005 à 12:35:16

Non t'inquiete pas je recopie pas betement j essaye de comprendre aussi ;) faut un debut a tout

Répondre à jay-jay

18

jay-jay, le 26 oct 2005 à 12:13:46

Merci a tous en tt cas ;)

Répondre à jay-jay

22

Erdnax, le 27 oct 2005 à 09:01:42

Salut,

On va continuer la discution ici, histoire que ça reste clair.

Je te conseil de faire plus simple, c'est ce que j'ai entre autre utilisé sur mon site :

<?php 

// Récupération des données transmises par POST 
$Name = $_POST['Name']; 
$Message = $_POST['Message']; 
$Message .= " 

$Name"; 
$Sujet = $_POST['Sujet']; 
$Email = $_POST['Email']; 

if($Name ==""){ 
  // On verifie le nom 
  echo("Le champ Nom est vide !"); 
} 
else{ 
  if($Message ==""){ 
    // On verifie le message 
    echo("Le champ Message est vide !"); 
  } 
  else{ 
    // On verifie le sujet 
    if($Sujet ==""){ 
      echo("Le champ sujet est vide !"); 
    } 
    else{ 
      // On verifie l'email 
      if(($Email == "") || (!preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $Email))){ 
        echo "L'adresse E-mail n'est pas valide \n"; 
      } 
      else{ 
        // si tout a été remplie, on envoi 
        mail("jayjay14@free.fr",$Sujet,$Message,"From: ".$Email); 
        echo("Votre message a bien été envoyé"); 
      } 
    } 
  } 
} 
?> 

Mais j'ai un peu peur que tu grilles les étapes en utilisant les regex (expressions régulières) à ce stade. C'est de loin la meilleur solution pour vérifier les mail, mais fais attention à ne pas prendre de script trop pré-conçu.

Je ne suis pas sûr que tu aie comris ce que tu avais fais, sinon tu te serais sûrement passé de la fonction, tu aurais fais une simple vérification... Par contre, si tu as tout compris, bravo !

P.S. utilise < code> et </ code> quand tu veux écrire du code, c'est mieux s'il est mise en forme correctement (avec les espaces au début des lignes) dans tes messages. Moi chuis moi et toi chais pas...

Répondre à Erdnax

23

jipegz, le 9 aoû 2007 à 02:54:24

Bonsoir à tous,

que j'emploie cette méthode ou une autre (empty, par exemple), j'obtiens toujours le même résultat : Au chargement de ma page, le message d'erreur apparaît déjà.

Je souhaiterai qu'aucun message n'apparaisse au chargement, et que la vérification se fasse une fois le bouton "Envoyé" activé.

J'retourne mon code dans tous les sens depuis deux jours, mais ayant débuté PHP depuis Dimanche seulement, je me sens un peu perdu même si pour l'instant je comprends mon code à 100%.

Est-ce que quelqu'un pourrait m'aider s'il vous plait ??

<edit>
Muarf au bout de deux jours de recherche je comprends, et c'est carrément tout con : <?php if($_POST['bouton']) {
instructions relative à l'envoi dans la base de données et à l'affichage du message d'erreur
}
?>

(où "bouton" est le nom donné au...bouton de soumission du formulaire)
Sérieux là j'ai franchement honte de moi...
</edit>

Répondre à jipegz

24

 www.BlooServ.Net, le 27 jan 2009 à 09:47:32

Je me appele mickael je voudrais savoirs si sais posible de faire un formulaire de contacts de question merci de avences

Répondre à www.BlooServ.Net
Collection CommentÇaMarche.net