Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2734 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Envoyer un formulaire sans passer par le mail ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Envoyer un formulaire sans passer par le mail ?

n°1565164
cambronne3
Posté le 25-05-2007 à 14:16:48  profilanswer
 

Salut,
 
Je fais un petit site sans prétention dans lequel j'aimerai bien qu'il soit possible d'envoyer quelques infos, donc j'ai pensé faire un formulaire HTML, le hic c'est que pour envoyer les données, ca se fait pas "directement" comme partout sur le WEB, non, ca ouvre le client mail, etc, en fait ca fait envoyer un mail... :ange:  
 
Pas pratique du tout ça, comment on fait pour envoyer directement les infos sans déclencher l'ouverture du client mail ? (je crois que dans  "method=" il faut mettre autre chose que "mailto:..." mais bon je connait pas trop les cgi...)
 
Vous pourriez m'aider ??
 
 :jap:  :jap:  :jap:

mood
Publicité
Posté le 25-05-2007 à 14:16:48  profilanswer
 

n°1565184
flo850
moi je
Posté le 25-05-2007 à 14:47:08  profilanswer
 

il fatu mettre l'adresse d'un script cote serveur ( en php , asp, perl , .... )  
 

n°1565190
_v1ru5_
Posté le 25-05-2007 à 14:55:34  profilanswer
 

Dans method tu peux mettre post ou get et dans action tu met le nom de la page vers laquelle tu envoi tes données (ex: ma_page.php)

n°1565392
cambronne3
Posté le 25-05-2007 à 18:15:42  profilanswer
 

Ok, j'ai fait un script en PHP, par contre j'arrive pas à rediriger une fois qu'il y a eu un clic sur "Envoyer".
Comment on redirige vers une page en PHP ?

n°1565446
jagstang
Pa Capona ಠ_ಠ
Posté le 25-05-2007 à 20:24:37  profilanswer
 

dans le action
 
form action="tonscript.php"


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1565519
cambronne3
Posté le 26-05-2007 à 00:54:12  profilanswer
 

J'ai un probleme: je reçois les champs sans leur valeur, par exemple:
 
champ1:
champ2:
 
alors que j'ai rempli champ1 et champ2 dans le formulaire...
 
J'utilise ce code la:
 

Code :
  1. # <HTML>
  2. # <HEAD>
  3. # <TITLE>E-Mail Formulaire</TITLE>
  4. # </HEAD>
  5. # <BODY>
  6. # <FORM method="POST" action="envoi.php">
  7. # <P>Votre noom:<br>
  8. # <INPUT type="text" name="nom" size=30>
  9. # </p>
  10. # <P>Votre adresse E-Mail:<br>
  11. # <INPUT type="text" name="email" size=30>
  12. # </p>
  13. # <P>Message:<br>
  14. # <textarea name="message" cols=30 rows=5></textarea>
  15. # </p><INPUT type="submit" value="Envoyer">
  16. # </FORM>
  17. # </BODY>
  18. # </HTML>
  19. #
  20. # //La seconde page ex.:envoi.php
  21. #
  22. # <?php
  23. # //Pour définir chaque input du formulaire, ajouter le signe de dollar devant
  24. #
  25. # $msg = "Nom:\t$nom\n";
  26. # $msg .= "E-Mail:\t$email\n";
  27. # $msg .= "Message:\t$message\n\n";
  28. # //Pourait continuer ainsi jusqu'à la fin du formulaire
  29. #
  30. # $recipient = "tonCourriel@mail.com";
  31. # $subject = "Formulaire";
  32. #
  33. # $mailheaders = "From: Mon test de formulaire<> \n";
  34. # $mailheaders .= "Reply-To: $email\n\n";
  35. #
  36. # mail($recipient, $subject, $msg, $mailheaders);
  37. #
  38. # echo "<HTML><HEAD>";
  39. # echo "<TITLE>Formulaire envoyer!</TITLE></HEAD><BODY>";
  40. # echo "<H1 align=center>Merci, $nom </H1>";
  41. # echo "<P align=center>";
  42. # echo "Votre formulaire à bien été envoyé !</P>";
  43. # echo "</BODY></HTML>";
  44. #
  45. # ?>

n°1565545
jagstang
Pa Capona ಠ_ಠ
Posté le 26-05-2007 à 10:51:52  profilanswer
 

remplace $nom par $_GET['nom']


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1565563
cambronne3
Posté le 26-05-2007 à 12:46:11  profilanswer
 

Ok ça marche maintenant merci.

n°1565871
cambronne3
Posté le 27-05-2007 à 17:46:53  profilanswer
 

Si l'hebergeur n'autorise pas la fonction mail(), on fait comment pour remplacer par "email()" ??

n°1565888
jagstang
Pa Capona ಠ_ಠ
Posté le 27-05-2007 à 18:18:44  profilanswer
 

crois-tu vraiment pouvoir contourner le problème ainsi ?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
mood
Publicité
Posté le 27-05-2007 à 18:18:44  profilanswer
 

n°1566004
cambronne3
Posté le 28-05-2007 à 00:43:03  profilanswer
 

Oui c'est ce qui était expliqué quelque part, que certains hebergeur desactivaient "mail()" qui permet le spam, contre "email()" qui necessite une adresse expéditeur...
 
Mais vu le merdier, je vais me pencher sur une autre option, peut-on par exemple écrire dans un fichier certaines données (au lieu de les mailer).
Comme ca j'ai juste à rapatrier de temps en temps ce fichier là...

n°1566033
phosphorel​oaded
Posté le 28-05-2007 à 09:57:18  profilanswer
 

C'est même conseillé si tu n'as aucune protection sur ton formulaire (pour éviter ce genre d'utilisation http://www.phpsecure.info/v2/artic [...] Inject.php )
 
A l'arrache, tu peux regarder du côté de http://fr.php.net/manual/fr/ref.filesystem.php (fopen, etc) en pensant à protéger également les données que tu y écris vu que tu vas les relire sur ton navigateur. :D
D'une part les risques sont faibles qu'une attaque réussisse de cette manière mais d'autre part tu es connecté en tant qu'admin: les conséquences d'une attaque réussie seraient plus lourdes pour ton site que lorsqu'il sert de "simple" relais à spam (avec un relais à spam, c'est l'hébergeur qui est avant tout concerné)


Message édité par phosphoreloaded le 28-05-2007 à 09:59:30
n°1566478
stravoguin​e
Posté le 29-05-2007 à 01:13:13  profilanswer
 

Y a plus simple tu fais un form_mail.php!
 
tu créés un nouveau fichier dans ton bloc-notes
 
tu copies colles ce code :
 

Citation :

<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites !
if(isset($_POST['submit'])){
 $erreur="";
 // Nettoyage des entrées
 while(list($var,$val)=each($_POST)){
 if(!is_array($val)){
  $$var=strip_tags($val);
 }else{
  while(list($arvar,$arval)=each($val)){
    $$var[$arvar]=strip_tags($arval);
   }
  }
 }
 // Formatage des entrées
 $f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_1)));
 $f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_2)));
 $f_3=strip_tags(trim($f_3));
 // Verification des champs
 if(strlen($f_1)<2){
  $erreur.="<li><span class='txterror'>Le champ « Prénom » est vide ou incomplet.</span>";
  $errf_1=1;
 }
 if(strlen($f_2)<2){
  $erreur.="<li><span class='txterror'>Le champ « Nom » est vide ou incomplet.</span>";
  $errf_2=1;
 }
 if(strlen($f_3)<2){
  $erreur.="<li><span class='txterror'>Le champ « Email » est vide ou incomplet.</span>";
  $errf_3=1;
 }else{
  if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
  '@'.
  '[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
  '[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
  $f_3)){
   $erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
   $errf_3=1;
  }
 }
 if(strlen($f_4)<2){
  $erreur.="<li><span class='txterror'>Le champ « Message » est vide ou incomplet.</span>";
  $errf_4=1;
 }
 if($erreur=="" ){
  // Création du message
  $titre="Message de votre site internet";
  $tete="From:www.monnomdedomaine.fr\n";//Indique l'url de ton site
  $corps.="Prénom : ".$f_1."\n";
  $corps.="Nom : ".$f_2."\n";
  $corps.="Email : ".$f_3."\n";
  $corps.="Message : ".$f_4."\n";
  if(mail("monemail@monnomdedomaine.fr", $titre, stripslashes($corps), $tete)){//indique ton adresse email à la place
   $ok_mail="true";
  }else{
   $erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
  }
 }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Le titre de ta Page</title>
<style type="text/css" media="screen"><!--Là en dessous tu changes ce qui va pas, les couleurs surtout etc.
body {
 background-color: #7A7CA0;
}
INPUT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
SELECT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
TEXTAREA { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
.txterror { color: black; font-size: 11px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
.txtform { color: white; font-size: 12px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
--></style>
</head>
 
<body>
<? if($ok_mail=="true" ){ ?>
 <table width='100%' border='0' cellspacing='1' cellpadding='1'>
  <tr><td><span class='txtform'>Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</span></td></tr>
  <tr><td> </td></tr>
  <tr><td><tt><?echo nl2br(stripslashes($corps));?></tt></td></tr>
  <tr><td> </td></tr>
  <tr><td><span class='txtform'>Nous allons y donner suite dans les meilleurs délais.<br>A bientôt.</span></td></tr>
 </table>
<? }else{ ?>
<form action='<? echo $PHP_SELF ?>' method='post' name='Form'>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<? if($erreur){ ?>
 <tr>
  <td colspan='2' bgcolor='red'>
   <span class='txterror'>
    <font color='white'>
     <b> ERREUR, votre message n'a pas été transmis</b>
    </font>
   </span>
  </td>
 </tr>
 <tr>
  <td colspan='2'>
   <ul><?echo$erreur?></ul>
  </td>
 </tr>
<?}?>
 
 <tr>
  <td align='right' width='30%'>
   <span class='txtform'>Prénom* :</span>
  </td>
  <td>
   <input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'>
  </td>
 </tr>
 <tr>
  <td align='right' width='30%'>
   <span class='txtform'>Nom* :</span>
  </td>
  <td>
   <input type='text' style='width:200 <?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?echo stripslashes($f_2);?>' size='24' border='0'>
  </td>
 </tr>
 <tr>
  <td align='right' width='30%'>
   <span class='txtform'>Email* :</span>
  </td>
  <td>
   <input type='text' style='width:200 <?if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' value='<?echo stripslashes($f_3);?>' size='24' border='0'>
  </td>
 </tr>
 <tr>
  <td align='right' width='30%'>
   <span class='txtform'>Message* :</span>
  </td>
  <td>
   <textarea style='width:360 <?if($errf_4==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_4' rows='6' cols='40'><?echo$f_4?></textarea>
  </td>
 </tr>
 <tr>
  <td align='right' width='30%'></td>
  <td><input type='submit' name='submit' value='Envoyer' border='0'></td>
 </tr>
</table>
</form>
 
<? } ?>
</body>
</html>


 
Tout ce qui est en gras tu le changes et remplaces par tes données.
 
Tu enregistres en nom de ce que tu veux, mets en form_mail.php si tu veux!
 
Puis dans ta page index.html ou php tu mets un lien contact avec ton script php ,soit :
 

Citation :

   <!-- DEBUT DU SCRIPT --><a href="" onClick="window.open('http://www.monnomdedomaine.fr/form_mail.php','contact_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=1, copyhistory=0, menuBar=0, width=500, height=250');return(false)" class="contact" title="Contact"><span>contact</span></a><!-- FIN DU SCRIPT -->
 A mettre dans la balise qui contien ton texte CONTACT (paragraphe, tableau,, bloc...)


 
 
Tout ce qui est en gras tu le changes et remplaces par tes données.
 
Bien sur tu adaptes à ta page et ton design hein, changes les couleurs surtout si tu veux!
 
En fait ton visiteur quand il cliquera sur contact, il tombera sur une mini fenétre avec formulaire assez jolie, et quand il validera son email il aura un message comme qui c'est bien envoyé et que tu répondras etc. Il a plus qu'à fermer cette mini fenétre et il retombe sur ton site.


Message édité par stravoguine le 29-05-2007 à 01:20:24
n°1566651
FlorentG
Unité de Masse
Posté le 29-05-2007 à 13:49:36  profilanswer
 

Olalalalala le code source :( C'est une catastrophe nucléaire

n°1566659
stravoguin​e
Posté le 29-05-2007 à 14:01:02  profilanswer
 

Corriges le si tu as le temps. Pas parfait mais fonctionne impeccablement.

n°1566661
FlorentG
Unité de Masse
Posté le 29-05-2007 à 14:02:36  profilanswer
 

Trop de choses à corriger ;)

n°1593141
Groody
Utilisez MES smileys §
Posté le 30-07-2007 à 09:04:51  profilanswer
 

FlorentG a écrit :

Trop de choses à corriger ;)


Aurais-tu un bon exemple de code propre ?
 
Avec différents champs ainsi qu'une liste déroulante.
 
:jap:


---------------
Vidéo Concorde Air France | www.kiva.org

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Envoyer un formulaire sans passer par le mail ?

 

Sujets relatifs
Empêcher la MAJ d'un champ formulaire ACCESS[XHTML] Validation formulaire "entrer" OK firefox, IE HS
Cherche "logiciel" d'administration de formulaireChanger l'expediteur d'un mail
Envoyer un code clavier vers RS232 ou usb ?formulaire php
[MAIL] stocker les adresses emails qui ne fonctionnent pas dans une bdSupprimer un mail en C#
Problème d'envoi de mail avec pièce jointeProblème formulaire JS
Plus de sujets relatifs à : Envoyer un formulaire sans passer par le mail ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR