Envoi de formulaires

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Envoi de formulaires

envoi formulaire

par stroumph31 » 24 oct. 2005, 10:40

Merci pour vos réponses. Le problème est résolu. C'était la config de mon php.ini qui n'était pas bonne.

envoi de formulaire

par stroumph31 » 19 oct. 2005, 19:12

Merci pour ta réponse aussi rapide. Je vais tester et je te dis si cela fonctionne.

par Cyrano » 19 oct. 2005, 19:02

Il y a fort à parier que tu nerécupères pas les valeurs de ton formulaire. il dervait y avoir des choses comme ceci:
if(isset($_POST['submit']))
{
    $f_1 = isset($_POST['f_1']) ? $_POST['f_1'] : "";
    //... etc ...
Et après seulement tu pourras utiliser les variables.

par charabia » 19 oct. 2005, 16:57

:arrow: Edites ton message et rajoute les [ php ]...[ /php ]

ligne de code

par stroumph31 » 19 oct. 2005, 16:45

Ci joint le code php du formulaire sav:

Ici le contenu du formulaire
<?php
//Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FFFFFF";
//Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#C90510";
//les champs de formulaires
$list[f_6]=array("Vous avez une panne de matériel");
$list[f_7]=array("Sélectionnez","Sous garantie","Hors garantie","Sous contrat de maintenance");
$list[f_9]=array("Vous avez une panne de logiciel");
$list[f_10]=array("Sélectionnez","Sous contrat","Hors contrat de maintenance");
$list[f_15]=array("Sélectionnez","Express","Sous 24H","Sous 48H","1 semaine");
if($submit){
//Formatage des entrées
$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_1)));
$f_2=trim(eregi_replace("[^0-9\ +]", "", $f_2));
$f_3=trim(eregi_replace("[^0-9\ +]", "", $f_3));
$f_4=strip_tags(trim($f_4));
$f_8=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_8)));
$f_11=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_11)));
//Verification des champs
if(strlen($f_1)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; Nom prénom &raquo; est vide ou incomplet.</span>";
$errf_1=1;
}
if(strlen($f_2)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; Téléphone &raquo; est vide ou incomplet.</span>";
$errf_2=1;
}
if(strlen($f_4)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; E-mail &raquo; est vide ou incomplet.</span>";
$errf_4=1;
}else{
if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
$f_4)){
$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
$errf_4=1;
}
}
if(strlen($f_14)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; Adresse facturation &raquo; est vide ou incomplet.</span>";
$errf_14=1;
}
if(!$erreur){
//Création du message
$titre="Formulaire SAV M G Bureautique";
$tete="From:[email protected]\n";
$corps.="Formulaire SAV M G BUREAUTIQUE\n";
$corps.= "Informations transmises :\n\n" ;
$corps.= "Date :  " . date("r") . "\n\n" ;
$corps.="Nom prénom : ".$f_1."\n";
$corps.="Téléphone : ".$f_2."\n";
$corps.="Fax : ".$f_3."\n";
$corps.="E-mail : ".$f_4."\n";
$corps.="Code client : ".$f_5."\n";
for($id=0; $id<count($list[f_6]); $id++){
if($f_6[$id]==1){
$corps.="Panne matériel : ".$list[f_6][$id]."\n";
}
}
$corps.="Garantie matériel : ".$list[f_7][$f_7]."\n";
$corps.="Matériel conçerné : ".$f_8."\n";
for($id=0; $id<count($list[f_9]); $id++){
if($f_9[$id]==1){
$corps.="Panne de logiciel : ".$list[f_9][$id]."\n";
}
}
$corps.="Contrat logiciel : ".$list[f_10][$f_10]."\n";
$corps.="Logiciel conçerné : ".$f_11."\n";
$corps.="Nature de la panne : ".$f_12."\n";
$corps.="Adresse intervention : ".$f_13."\n";
$corps.="Adresse facturation : ".$f_14."\n";
$corps.="Délais souhaités : ".$list[f_15][$f_15]."\n";
if(mail("[email protected]", $titre, stripslashes($corps), $tete)){
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}
?>


Ici la reponse générée lorsque le formulaire est rempli
<?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><span class='txtform'>Nous allons 
                                          y donner suite dans les meilleurs délais.<br>
                                          A bientôt.<br>
                                          _________________________________________ 
                                          </span></td>
                                      </tr>
                                      <tr> 
                                        <td class="txtform"><tt><?echo nl2br(stripslashes($corps));?></tt></td>
                                      </tr>
                                      <tr> 
                                        <td><span class='txtform'>_________________________________________<br>
                                          Service Apr&eacute;s Vente M G BUREAUTIQUE---> 
                                          <a href="formulaireSAV.php" target="_self">retour</a></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 bgcolor="#C90510"> 
                                          <td colspan='2'><span class='txterror'><font color='white'><b>&nbsp;ERREUR, 
                                            votre message n'a pas été transmis</b></font></span></td>
                                        </tr>

par zeus » 19 oct. 2005, 12:13

Donne nous la ligne de code qui te permet de définir l'envoi du formulaire par mail et le message d'erreur exact

Envoi de formulaires

par stroumph31 » 19 oct. 2005, 12:10

Bonjour,

Configuration du serveur web:
- Windows 2000 serveur sp4.
- Apache 2.0.55.
- Php 4 win32 dernière version stable.
- Mysql 1.4

Problème:
- Formulaire de demande de sav à remplir et à envoyer sur une adresse mail prédéfinie dans le formulaire. Le formaulaire se rempli bien, réagis bien au fonction de champs obligatoires mais lorsque je clic sur "envoyer" j'ai un mesage de refus d'envoi du formulaire et bien sur je ne reçoit rien dans la boite mail en question.
Ce formulaire fonctionne correctement avec un serveur unix et apache
Faut-il une fonction particulière sous windows 2000 serveur.

Merci de m'aider