Fonction mail avec un if else tout bête et javascript confirm()

Fonction mail avec un if else tout bête et javascript confirm() - PHP - Programmation

Marsh Posté le 07-06-2006 à 17:02:32    

Bonjour,
J'ai un gros souci avec mon code. Je vous explique le truc :
je remplis un formulaire en omettant un champ 'piece jointe' puis quand je le valide, une popup javascript confirm() me demande si je dois envoyer la demande sans pièce jointe. Si j'annule, je reviens sur ma page de formulaire grace a un window.history.back et si je fais OK (window.close) ma demande est censée être envoyée par mail. En fait non. Mon formulaire correctement rempli envoie bien un mail et si il me manque cette PJ je n'envoie rien.
Je me demande si je me suis pas planté dans l'ordre de mon if else....à partir de la ligne  
 


Message édité par snp le 07-06-2006 à 17:05:02
Reply

Marsh Posté le 07-06-2006 à 17:02:32   

Reply

Marsh Posté le 07-06-2006 à 17:04:50    

k, lol
mais encore ? [:el g]

Reply

Marsh Posté le 07-06-2006 à 17:05:20    

j'arrivais pas a poster, sorry

Reply

Marsh Posté le 07-06-2006 à 17:13:28    

see ya tomorrow k? lol


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 07-06-2006 à 18:34:32    

A y est ! voila donc mon code :
ça merdois à partir de la ligne 22 je pense !
 

Code :
  1. function envoi_mail($name_from, $mail_from, $name_to, $mail_to)
  2. {
  3. include '../../admin/variables.php';
  4. $utilisateur=$_POST['utilisateurs'];
  5. $doc_joint=$_POST['doc_joint'];
  6. $projet=$_POST['projet'];
  7.       //creation nouveau mail (taille MAX, "norme)"
  8.       $mon_mail = new html_mime_mail(4096000, "iso-8859-1" );
  9.       //fichier pdf créé grâce à la fonction generation_pdf() en piece jointe
  10.       $nom_dde_envoye="Demande_Fabrication $utilisateur $projet.pdf";
  11.   $mon_mail->add_attach(generation_pdf(), "$nom_dde_envoye", "application/octet-stream" );
  12.  
  13.  
  14. if (empty($doc_joint))
  15. {
  16. echo '<script language="javascript">
  17.   if (window.confirm("Voulez vous envoyer votre demande sans joindre de fichier ?" ))
  18.   {
  19.     window.close();
  20.   }
  21.   else
  22.   {
  23.   window.history.back();
  24.   }
  25. </script>' ;
  26.     }
  27. else
  28. {
  29.   //Les pièces jointes
  30.      $fp = fopen("$doc_joint", "r" );
  31. $bin_att = fread($fp, filesize("$doc_joint " ));
  32. fclose($fp);
  33.   //nom des pièces jointes
  34.      $mon_mail->add_attach($bin_att, "$doc_joint", "application/octet-stream" );
  35. //}     
  36.       //on ajoute le corps de l’email
  37.       $mon_mail->add_body($_POST['mail']);
  38.       //creation de l’email
  39.       $mon_mail->build_mail("base64",1);
  40.       $mon_mail->send($name_from, $mail_from, $name_to, $mail_to, "Demande de Fabrication" );
  41. }
  42.  }
  43. include '../../admin/variables.php';
  44. //Recuperation du prénom et du nom de l'emetteur de la demande
  45. include '../../include/connexion_base.php';
  46. $utilisateur=$_POST['utilisateurs'];
  47. $result = odbc_exec($cnx, "SELECT nom,prenom FROM utilisateurs WHERE initiales='$utilisateur'" );
  48. $data = odbc_fetch_array($result);
  49. $nom = $data['nom'];
  50. $prenom = $data['prenom'];
  51. $full_name = $prenom.' '.$nom;
  52. $mail = $prenom.'.'.$nom.$domaine;
  53. //envoi_mail("DE","DE(mail)","POUR","POUR(mail" )   
  54. envoi_mail($full_name,$mail,'',$dest_outillage); 
  55. echo '<script language="javascript">
  56. alert("La demande de Fabrication a été envoyée " );
  57. window.close();
  58. </script>';

Message cité 1 fois
Message édité par snp le 07-06-2006 à 18:35:42
Reply

Marsh Posté le 08-06-2006 à 10:15:00    

De plus, je viens de constater que si je ne joins pas de doc et que je clic sur annuler de la popup je reviens en arriere mais en plus mon mail est envoyé sans la PJ.
une fois la PJ ajoutée, le mail est renvoyer...
no comprendo !

Reply

Marsh Posté le 08-06-2006 à 16:27:17    

personne n'a une petite idée là-dessus ?

Reply

Marsh Posté le 22-06-2006 à 13:15:45    

up

Reply

Marsh Posté le 22-06-2006 à 13:31:26    

snp a écrit :


if (empty($doc_joint))  
{...}
else  
{...}
...
//envoi_mail("DE","DE(mail)","POUR","POUR(mail" )  
envoi_mail($full_name,$mail,'',$dest_outillage);


 
Je pense que c'est pour ça que ton mail soit envoyé systématiquement...


---------------
Je donne souvent l'air d'être ailleurs, mais en faite, je ne suis nulle part...
Reply

Marsh Posté le 26-06-2006 à 10:03:35    

J'ai tenté d'insérer du javascript dans mon formulaire pour que la présence du doc_joint soit vérifié mais le code ne semble pas être pris en compte.
 
Entre <head> et </head>

Code :
  1. <script language="javascript">
  2.     function emet(_form,_file) {
  3.         var envoi = true;
  4.         if ( _file == "" ) {
  5.             if ( ! confirm( 'voulez-vous envoyer' ... ) ) {
  6.                 envoi = false;
  7.             }
  8.         }
  9.         if ( envoi ) {
  10.              // emission
  11.              _form.submit();
  12.         }
  13.        
  14.     }
  15. </script>


 
Dans mon <body>

Code :
  1. <form method="post" action="add_dde_fab.php" enctype="multipart/form-data" onsubmit="javascript:emet(this,this.elements['doc_joint']);return false;">
  2.     <div align="center"><span class="IntraBE">PLANS, NORMES, CDC etc... :
  3.     <input type="file" name="doc_joint" /> <span class="Style1">(si plusieurs, les zipper)</span>
  4.       </span>


 
Quelqu'un peut m'indiquer mon erreur SVP ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed