rss
formulaire de contact
par Jay-Jay
 Fil de Discussions
Statut : Non résolu
mercredi 26 octobre 2005 à 11:11:15
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
Répondre à Jay-Jay  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Erdnax, le mercredi 26 octobre 2005 à 11:27:50 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par wiwimagique, le mercredi 26 octobre 2005 à 11:28:32 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Erdnax, le mercredi 26 octobre 2005 à 11:31:25 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Jay-Jay, le mercredi 26 octobre 2005 à 11:34:28 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Jay-Jay, le mercredi 26 octobre 2005 à 11:38:36 Fil de Discussions
ca marche tjs pas :(
Répondre à Jay-Jay

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Erdnax, le mercredi 26 octobre 2005 à 11:41:56 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par wiwimagique, le mercredi 26 octobre 2005 à 11:48:43 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Jay-Jay, le mercredi 26 octobre 2005 à 11:46:52 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par wiwimagique, le mercredi 26 octobre 2005 à 11:50:06 Fil de Discussions
oui, en effet
regarde un peu ici :

http://fr.php.net/mail

Dans sa voiture rouge et jaune
Répondre à wiwimagique

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Jay-Jay, le mercredi 26 octobre 2005 à 11:57:59 Fil de Discussions
euh je dois comprendre quoi par ce lien ^o)
Répondre à Jay-Jay

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par wiwimagique, le mercredi 26 octobre 2005 à 12:04:27 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Erdnax, le mercredi 26 octobre 2005 à 11:59:45 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jay-jay, le mercredi 26 octobre 2005 à 12:05:05 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Erdnax, le mercredi 26 octobre 2005 à 11:53:59 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jay-jay, le mercredi 26 octobre 2005 à 12:04:02 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Erdnax, le mercredi 26 octobre 2005 à 12:08:16 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Jay-Jay, le mercredi 26 octobre 2005 à 22:48:45 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par wiwimagique, le mercredi 26 octobre 2005 à 12:07:36 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par wiwimagique, le mercredi 26 octobre 2005 à 12:14:30 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jay-jay, le mercredi 26 octobre 2005 à 12:35:16 Fil de Discussions
non t'inquiete pas je recopie pas betement j essaye de comprendre aussi ;) faut un debut a tout
Répondre à jay-jay

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jay-jay, le mercredi 26 octobre 2005 à 12:13:46 Fil de Discussions
merci a tous en tt cas ;)
Répondre à jay-jay

22


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Erdnax, le jeudi 27 octobre 2005 à 09:01:42 Fil de Discussions
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jipegz, le jeudi 9 août 2007 à 02:54:24 Fil de Discussions 
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