Formulaire de contact

Eléphanteau du PHP | 10 Messages

24 août 2010, 23:10

Bonjour,

J'ai trouvé un petit script de formulaire de contact pour mon site internet (Il n'est pas très récent)car j'en avais besoins.

Mais il comporte un champ email que je ne veux pas, mais vue que je ne suis pas très fort en php je n'arrive pas a le retirer.

Mon but serais de mettre tout les champs obligatoire et ne recevoir les mail normalement et non en indésirable.




Voice le code php d'origine.
<?
/*
GONFIGURATION  
*/
$YourMail="[email protected]"; #METTEZ VOTRE EMAIL ICI 

$lenSubject=24; //taille du sujet
$lenMsg=3000; //taille du message
$SendRecpt=1; //envoyer un accusé 1 = oui  0= non
			 // c a d si un email est envoyé au user ou non 
			 // pour lui confirmer la réception de son message
			 // ( un petit répondeur .. :Pp )
			 
#Vous pouver personnaliser les differents messages
$NoticeMsg=" Vore message a été bien envoyé sur ma boite!Je vous réponderais bientot ";  // pourle user
$NoticeSub="notification ";//titre du mail qui arrive sur la boite du user
$ErrMsg1="Champs omis ! tout les champs sont obligaoire ."; //lorse que un chmaps est vide
$ErrMsg2="ERREUR: Message non envoyé.";  //lorseque l'email n'est pas envoyé
$thanks=" - Message reçue ! Merci. -"; //confirmation .

/*
FIN CONFIGURATION
*/



$Vemail=trim($_POST["email"]);
$Vsujet=trim($_POST["sujet"]);
$Vmsge=trim($_POST["message"]);
if($Vemail  == ""|| $Vsujet == ""||$Vmsge == "")
{
echo "Un champs a été omis";
}else{
$reg="^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z\.]{2,5}$";
	 if(!eregi($reg,$_POST["email"])){
	 echo $ErrMsg1;
	 } else
	  {
	   //qlq truc
	   if (strlen($Vsujet) > $lenSubject){
	    echo "Sujet trop long";
		
		}else if (strlen($Vmsge) >$lenMsg ){
		echo "Message trop long .";
		} else{
		
		 if(@mail($YourMail,$Vsujet." IP :". $_SERVER['REMOTE_ADDR'],$Vmsge))
		 {
		 echo $thanks;
		  if($SendRecpt== 1){		  
		 mail($_POST["email"],$NoticeSub,$NoticeMsg);
		 }
		 }else{
		 echo "ERREUR: Message non envoyé";
		 }
	  }
	}
}

?>

Le code html que j'ai modifier :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><form name="form1" method="post" action="mailme.php">
        <table width="100%" border="0" cellspacing="1" cellpadding="1">
		      <tr> 
            <td><font size="2" face="verdana">Titre de votre tuto</font></td>
            <td><input name="sujet" type="text" id="sujet"></td>
          </tr>
          <tr> 
            <td><font size="2" face="verdana">Nom et prénom de votre pol(ette)</font></td>
             <td><input name="prenom" type="text" id="prenom"></td>
          </tr>
          <tr> 
            <td><font size="2" face="verdana">Code de votre tuto : </font></td>
            <td><textarea name="message" cols="55" rows="7" id="message"></textarea></td>
          </tr>
          <tr> 
            <td>&nbsp;</td>
            <td><input type="submit" name="Submit" value="Envoyer"></td>
          </tr>
          <tr> 
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
        </table>
      </form></td>
  </tr>
</table>
</body>
</html>

Et voici le code php que j'ai essayer de modifier :
<?

/*
GONFIGURATION  
*/
$YourMail="[email protected]"; #METTEZ VOTRE EMAIL ICI 

$lenSubject=24; //taille du sujet
$lenMsg=3000; //taille du message
$SendRecpt=0; //envoyer un accusé 1 = oui  0= non
			 // c a d si un email est envoyé au user ou non 
			 // pour lui confirmer la réception de son message
			 // ( un petit répondeur .. :Pp )
			 
#Vous pouver personnaliser les differents messages
$NoticeMsg=" Vore message a été bien envoyé sur ma boite! Je vous réponderais bientot ";  // pourle user
$NoticeSub="notification ";//titre du mail qui arrive sur la boite du user
$ErrMsg1="Champs omis ! tout les champs sont obligaoire ."; //lorse que un chmaps est vide
$ErrMsg2="ERREUR: Message non envoyé.";  //lorseque l'email n'est pas envoyé
$thanks=" - Message reçue ! Merci. -"; //confirmation .

/*
FIN CONFIGURATION
*/



$Vsujet=trim($_POST["prenom"]);
$Vsujet=trim($_POST["sujet"]);
$Vmsge=trim($_POST["message"]);
if($Vsujet == ""|| $Vprenom == ""|| $Vmsge == "")
{
echo "Un champs a été omis";
}else

	  {
	   //qlq truc
	   if (strlen($Vsujet) > $lenSubject){
	    echo "Sujet trop long";
		
		}else if (strlen($Vmsge) >$lenMsg ){
		echo "Message trop long .";
		} else{
		
		 if(@mail($YourMail,$Vsujet." IP :". $_SERVER['REMOTE_ADDR'],$Vmsge))
		 {
		 echo $thanks;
		  if($SendRecpt== 1){		  
		 mail($_POST["email"],$NoticeSub,$NoticeMsg);
		 }
		 }else{
		 echo "ERREUR: Message non envoyé";
		 }
	  }
	}


?>
Merci si vous pourriez m'aidai.

Cordialement

Mammouth du PHP | 686 Messages

25 août 2010, 09:39

Et bien en fait plutot que de définir ta varbiale $Vemail comme ceci
$Vemail=trim($_POST["email"]);
Met par exemple ton adresse mail.
Le code complet modifié serai
<?
/*
GONFIGURATION  
*/
$YourMail="[email protected]"; #METTEZ VOTRE EMAIL ICI 

$lenSubject=24; //taille du sujet
$lenMsg=3000; //taille du message
$SendRecpt=1; //envoyer un accusé 1 = oui  0= non
          // c a d si un email est envoyé au user ou non 
          // pour lui confirmer la réception de son message
          // ( un petit répondeur .. :Pp )
          
#Vous pouver personnaliser les differents messages
$NoticeMsg=" Vore message a été bien envoyé sur ma boite!Je vous réponderais bientot ";  // pourle user
$NoticeSub="notification ";//titre du mail qui arrive sur la boite du user
$ErrMsg1="Champs omis ! tout les champs sont obligaoire ."; //lorse que un chmaps est vide
$ErrMsg2="ERREUR: Message non envoyé.";  //lorseque l'email n'est pas envoyé
$thanks=" - Message reçue ! Merci. -"; //confirmation .

/*
FIN CONFIGURATION
*/


//////////////////
///////////////
//////////// MODIFICATION APPORTEE ICI
$Vemail=$YourMail;
//////////////////////
///////////////////////
////////////////////////
$Vsujet=trim($_POST["sujet"]);
$Vmsge=trim($_POST["message"]);
if($Vemail  == ""|| $Vsujet == ""||$Vmsge == "")
{
echo "Un champs a été omis";
}else{
$reg="^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z\.]{2,5}$";
    if(!eregi($reg,$_POST["email"])){
    echo $ErrMsg1;
    } else
     {
      //qlq truc
      if (strlen($Vsujet) > $lenSubject){
       echo "Sujet trop long";
      
      }else if (strlen($Vmsge) >$lenMsg ){
      echo "Message trop long .";
      } else{
      
       if(@mail($YourMail,$Vsujet." IP :". $_SERVER['REMOTE_ADDR'],$Vmsge))
       {
       echo $thanks;
        if($SendRecpt== 1){        
       mail($_POST["email"],$NoticeSub,$NoticeMsg);
       }
       }else{
       echo "ERREUR: Message non envoyé";
       }
     }
   }
}

?>


Eléphanteau du PHP | 10 Messages

25 août 2010, 14:00

Bonjour,

Je ne comprend pas.

Moi j'aimerais retirer ce champ mail.

J'aimerais obtenir un formulaire comme ceci :

Image

En titre des email ça serais le champ : Titre de votre tuto

Merci si vosu pourriez m'adai

Mammouth du PHP | 686 Messages

26 août 2010, 09:36

Justement avec ma modification tu n'auras plus besoin du champs mail.
Car en fait avec ce que j'ai fait, l'email du destinataire est aussi l'email de l'expediteur.
L'email de l'expediteur n'a plus a être renseignée dans un champs de formulaire.

Je n'ai pas supprimé la varibale du mail de l'expediteur, car sinon, le script ne fonctionnerai plus (Il faut obligatoirement un expediteur et un destinataire pour que le script fonctionne).

Essai avec le code que je t'ai donné plus tu veras, l'adresse mail de l'expediteur sera en fait l'adresse mail ou tu les recoit

Eléphanteau du PHP | 10 Messages

26 août 2010, 10:31

ça ne marche pas.
Parse error: syntax error, unexpected T_ELSE in /home/francotuto/www/redaction/form/mailme.php on line 65

Mammouth du PHP | 686 Messages

26 août 2010, 10:33

Il ya a quoi en ligne 65 ?

Eléphanteau du PHP | 10 Messages

26 août 2010, 11:16

Rien.


Le code s'arrête a la ligne 59.

Il faut que le code php s'adapte au code html aussi.

C'est peut-être ça ?

Mammouth du PHP | 686 Messages

26 août 2010, 11:28

C'est etonnant car il dit qu'il ya un ELSE en trop ligne 65 dans ton fichier mailme.php
Cela fonctionnait tout de même avant la modif que je t'ai faite ?
Ma modification ne devrais pas entrainer cette erreur en principe.
Sinon donne tout le code de ton fichier mailme.php ainsi que le code HTML de ton formulaire
Biensur il faut adapter les varibales
$Vsujet=trim($_POST["sujet"]);
$Vmsge=trim($_POST["message"]);
en fonction du nom des champs de ton formulaire

Eléphanteau du PHP | 10 Messages

26 août 2010, 12:31

Tout les codes sont écris en haut.

Mammouth du PHP | 686 Messages

26 août 2010, 12:48

D'acc
Essaie ca :
<?

/*
GONFIGURATION  
*/
$YourMail="[email protected]"; #METTEZ VOTRE EMAIL ICI 

$lenSubject=24; //taille du sujet
$lenMsg=3000; //taille du message
$SendRecpt=0; //envoyer un accusé 1 = oui  0= non
          // c a d si un email est envoyé au user ou non 
          // pour lui confirmer la réception de son message
          // ( un petit répondeur .. :Pp )
          
#Vous pouver personnaliser les differents messages
$NoticeMsg=" Vore message a été bien envoyé sur ma boite! Je vous réponderais bientot ";  // pourle user
$NoticeSub="notification ";//titre du mail qui arrive sur la boite du user
$ErrMsg1="Champs omis ! tout les champs sont obligaoire ."; //lorse que un chmaps est vide
$ErrMsg2="ERREUR: Message non envoyé.";  //lorseque l'email n'est pas envoyé
$thanks=" - Message reçue ! Merci. -"; //confirmation .

/*
FIN CONFIGURATION
*/



$Vsujet=trim($_POST["prenom"]);
$Vsujet=trim($_POST["sujet"]);
$Vmsge=trim($_POST["message"]);
if($Vsujet == ""|| $Vprenom == ""|| $Vmsge == "")
{
echo "Un champs a été omis";
}else

     {
      //qlq truc
      if (strlen($Vsujet) > $lenSubject){
       echo "Sujet trop long";
      
      }else if (strlen($Vmsge) >$lenMsg ){
      echo "Message trop long .";
      } else{
      
       if(@mail($YourMail,$Vsujet." IP :". $_SERVER['REMOTE_ADDR'],$Vmsge))
       {
       echo $thanks;
        if($SendRecpt== 1){        
       mail($YourMail,$NoticeSub,$NoticeMsg);
       }
       }else{
       echo "ERREUR: Message non envoyé";
       }
     }
   }


?>

Eléphanteau du PHP | 10 Messages

26 août 2010, 13:50

Ok.

Je testerais plus tard, car mon hébergement web viens de changer de serveur et je pense qu'il y a encore des bugs.

(ça upload/modif bien le fichier sur le ftp mais ça ne le prend pas en compte sur le site)

Eléphanteau du PHP | 10 Messages

27 août 2010, 11:14

Voila.

J'ai ce méssage maintenant :

Un champs a été omis

Eléphanteau du PHP | 30 Messages

27 août 2010, 13:18

bonjour,

est ce que ce genre de formulaire te conviendrait ? -> Formulaire

A+

Mammouth du PHP | 686 Messages

27 août 2010, 14:05

Voila.

J'ai ce méssage maintenant :

Un champs a été omis
Normal ya une erreur là
$Vsujet=trim($_POST["prenom"]); //////////////////////////
$Vsujet=trim($_POST["sujet"]);
$Vmsge=trim($_POST["message"]);
Avec ca ca sera mieux !
$Vprenom=trim($_POST["prenom"]);
$Vsujet=trim($_POST["sujet"]);
$Vmsge=trim($_POST["message"]);

Eléphanteau du PHP | 10 Messages

28 août 2010, 10:02

Merci beaucoup :D