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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Intégration d'un champ 'joindre un fichier' dans un formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Intégration d'un champ 'joindre un fichier' dans un formulaire

n°1877186
VVhite_Ang​el
Posté le 24-04-2009 à 10:14:33  profilanswer
 

Bonjour a tous,
 
Depuis quelques temps, j'ai cherché a créer un formulaire de contact. Après pas mal de recherches je suis tombé sur un formulaire qui me plaît assez, avec code de vérification et que j'ai formaté pour qu'il m'envoie un mail comme je le souhaite.
 
J'ai cherché par la suite pour ajouter un champ "joindre un fichier" et là je bloque. J'ai trouvé des lignes de codes me permettant d'implémenter ce champ mais sans succès ...
 
Je joint au message, la structure du formulaire si vous avez des idée de "comment bien implémenter" ce champ dans le code initial, j'ai pas trop envie de changer de script ...
 
Merci d'avance pour votre aide :)
 
formulaire.php

Code :
  1. <?php
  2. echo ' <div align="center">'."\n"."\n";
  3. if ($_GET['err_RetourEsp'] == "1" ) {
  4. echo ' <br /><Font face="Verdana" Size="2" Color="#FF0033"><b>Merci de ne pas utiliser ce Formulaire à des fins malveillante !!!!</b></font><br />';
  5. } else { echo ''; }
  6. if ($_GET['err_mail_arrobase'] == "1" ) {
  7. echo ' <br /><Font face="Verdana" Size="2" Color="#FF0033">Votre Adresse Mail n\'est pas Valide !</font><br />';
  8. } else { echo ''; }
  9. if ($_GET['ok'] == "1" ) {
  10. echo ' <br /><Font face="Verdana" Size="2" Color="#008800">Votre Mail à bien été envoyé.</font><br />';
  11. } else { echo ''; }
  12. if ($_GET['err_envoi'] == "1" ) {
  13. echo ' <Font face="Verdana" Size="2" Color="#FF0033">Votre Mail n\'a pu être envoyé.<br />Essayez de refaire un essai..</font><br />';
  14. } else { echo ''; }
  15. echo '<form name="contactmail" method="post" action="contactmail.php" enctype="multipart/form-data" id="contactmail">'."\n"."\n";
  16. echo ' <p><font face="Verdana" Size="2">'."\n"."\n";
  17. echo ' <label for="mail">Votre adresse mail :</label><br />'."\n";
  18. echo ' <input type="text" id="mail" name="mail" size="20" maxlength="100" Value="'.$_GET['mail'].'" /><br /><br />'."\n"."\n";
  19. if ($_GET['err_mail'] == "1" ) {
  20. echo ' <Font face="Verdana" Size="2" Color="#FF0033">Vous devez saisir une votre adresse mail !</font><br /><br />';
  21. } else { echo ''; }
  22. echo ' <label for="sujet">Sujet :</label><br />'."\n";
  23. echo ' <input name="sujet" type="text" size="20" maxlength="100" Value="'.$_GET['sujet'].'" /><br /><br />'."\n"."\n";
  24. if ($_GET['err_sujet'] == "1" ) {
  25. echo ' <Font face="Verdana" Size="2" Color="#FF0033">Vous devez indiquer le Sujet !</font><br /><br />';
  26. } else { echo ''; }
  27. echo ' <label for="msg">Votre Message :</label><br />'."\n";
  28. echo ' <textarea name="msg" cols="40" rows="4">'.$_GET['msg'].'</textarea><br /><br />'."\n"."\n";
  29. if ($_GET['err_msg'] == "1" ) {
  30. echo ' <Font face="Verdana" Size="2" Color="#FF0033">Vous devez saisir un Message !</font><br /><br />';
  31. } else { echo ''; }
  32. echo ' <img src="cryptimage.php" alt="image de securisation du formulaire" title="image de securisation du formulaire" /><br />'."\n"."\n";
  33. echo ' <label for="verif">Merci de recopier la combinaison ci dessus<br />dans le champ qui suit :</label><br /><br />'."\n";
  34. if ($_GET['err_code'] == "1" ) {
  35. echo ' <Font face="Verdana" Size="2" Color="#FF0033">Le Code que vous avez saisi ne correspond pas au Code de Vérification !</font><br /><br />';
  36. } else { echo ''; }
  37. if ($_GET['err_session'] == "1" ) {
  38. echo ' <Font face="Verdana" Size="2" Color="#FF0033">Attention, la "Session" à expirée ou le "Code de Vérification" est incorrect !</font><br /><br />';
  39. } else { echo ''; }
  40. echo ' <input type="text" name="verif" size="10" maxlength="5" />'."\n";
  41. echo ' <br />'."\n";
  42. echo ' <input type="submit" value="Envoyer le mail" />'."\n"."\n";
  43. echo ' </font></p>'."\n";
  44. echo '</form>'."\n";
  45. echo ' </div>'."\n"."\n";
  46. ?>


 
cryptimage.php

Code :
  1. <?php
  2. // Démarage d'une session nécéssaire pour récupérer la valeur générée d'une page a l'autre :
  3. session_start();
  4. // on définie la liste qui va servir a récupérer les lettres qui formeront la valeur a saisir :  :
  5. // Les caractère suivant ont été enlevés pour éviter toutes confision : ilo01IO
  6. $liste = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKLMNPQRSTUVWXYZ";
  7. // On créer une valeur qui sera notre code secret a saisir :
  8. $code = '';
  9. // On crée une boucle pour créer une chaine de 5 caractères pris au hasard au sein de la variable $liste :
  10. while(strlen($code) != 5)
  11. {
  12. $code .= $liste[rand(0,63)];
  13. }
  14. // on définit une variable de session nomée $_SESSION['code'] que l'on réutilisera plus tard :
  15. $_SESSION['code']=$code;
  16. // on crée une image de 50 pixels par 20 pixels :
  17. $larg = 50;
  18. $haut =20;
  19. $img = imageCreate($larg, $haut);
  20. $rouge = imageColorAllocate($img,200,200,200);
  21. $noir = imageColorAllocate($img,0,0,0);
  22. $code_police=5;
  23. header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
  24. header('Cache-Control: no-store, no-cache, must-revalidate');
  25. header('Cache-Control: post-check=0, pre-check=0', false);
  26. header("Content-type: image/jpeg" );
  27. // incorporation de la variable variable $code dans l'image :
  28. imageString($img, $code_police,($larg-imageFontWidth($code_police)*strlen("".$code."" ))/2,0, $code,$noir);
  29. // on crée une image de relative mauvaise qualité (ici 25% d'une image normale pour eviter la reconnaissance visuelle de certains robots :
  30. imagejpeg($img,'',25);
  31. imageDestroy($img);
  32. ?>


 
contactmail.php

Code :
  1. <?php
  2. // nous démarrons la session afin de récupérer la valeur codée :
  3. session_start();
  4. // Nous testons que la variable existe et qu'elle a bien la longueur souhaitée :
  5. if (!isset($_SESSION['code']) OR strlen($_SESSION['code']) !=5) { header('Location: ./formulaire.php?mail='.$_POST['mail'].'&msg='.$_POST['msg'].'&sujet='.$_POST['sujet'].'&err_session=1'); }
  6. // Vérification du Code de validation :
  7. if ($_SESSION['code'] != $_POST['verif'])  { header('Location: ./formulaire.php?mail='.$_POST['mail'].'&msg='.$_POST['msg'].'&sujet='.$_POST['sujet'].'&err_code=1'); }
  8. // on récupère le mail de la personne qui envoi le mail :
  9. $exp = $_POST['mail'];
  10. // Conversion en Minuscule :
  11. $exp = strtolower($exp);
  12. // on formate les chaines du sujet et du corps du mail :
  13. $sujet = "GENERAL";
  14. $msg = stripslashes($_POST['sujet']." par ".$_POST['mail']."\n"."\n".$_POST['msg']);
  15. // Vérification des Champs vides :
  16. if (empty($_POST['mail'])) { header('Location: ./formulaire.php?msg='.$_POST['msg'].'&sujet='.$_POST['sujet'].'&err_mail=1'); }
  17. elseif (empty($_POST['sujet'])) { header('Location: ./formulaire.php?mail='.$_POST['mail'].'&msg='.$_POST['msg'].'&err_sujet=1'); }
  18. elseif (empty($_POST['msg'])) { header('Location: ./formulaire.php?mail='.$_POST['mail'].'&sujet='.$_POST['sujet'].'&err_msg=1'); }
  19. // Vérification Adresse Mail :
  20. // On Bloque tout ce qui n'est une Lettre, un Tiret, un UnderScore, un Point ou  un Aobase.
  21. // On évite donc les Injections :
  22. elseif (eregi("[^a-z0-9_\-\.@]", $exp)) { header('Location: ./formulaire.php?err_RetourEsp=1'); }
  23. elseif (eregi("\\\r",$exp) || eregi("\\\n",$exp)){ header('Location: ./formulaire.php?err_RetourEsp=1'); }
  24. // On vérifi un la structure de l'adresse Mail :
  25. elseif (!ereg("([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z]+)", $exp)) { header('Location: ./formulaire.php?mail='.$_POST['mail'].'&msg='.$_POST['msg'].'&sujet='.$_POST['sujet'].'&err_mail_arrobase=1'); }
  26. // Si toutes les Vérifications sont Ok, on envoi le mail :
  27. elseif (ereg("([a-zA-Z0-9._-]+@{1,}[a-zA-Z0-9._-]+\.[a-zA-Z]+)", $exp))
  28. {
  29. // envoi du mail :
  30. $envoi = mail(" mon email ", $sujet, $msg, "From: $exp" );
  31. if($envoi) {
  32. header('Location: ./formulaire.php?ok=1');
  33. }
  34. else {
  35. header('Location: ./formulaire.php?mail='.$_POST['mail'].'&msg='.$_POST['msg'].'&sujet='.$_POST['sujet'].'&err_envoi=1');
  36. }
  37. // on efface et détruit les varaibles de sessions :
  38. }
  39. session_unset();
  40. session_destroy();
  41. ?>

mood
Publicité
Posté le 24-04-2009 à 10:14:33  profilanswer
 

n°1877894
VVhite_Ang​el
Posté le 26-04-2009 à 12:31:35  profilanswer
 

pas de piste ? un avis ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Intégration d'un champ 'joindre un fichier' dans un formulaire

 

Sujets relatifs
Extraire que certaines données d'un fichier csvPasser des variables d'un formulaire à l'autre ?
Durée de vie session PHP et imageCreation d'un index pour fichier
créer un fichier avec OutputStreamConnaître le contenu d'un fichier compressé
Problème pour supprimer article en PHP/MySQLCalcul de difference entre 2 dates dans 1 fichier 'Batch'
password pour page HTML/PHPAffichage d'un fichier texte [Résolu]
Plus de sujets relatifs à : [PHP] Intégration d'un champ 'joindre un fichier' dans un formulaire


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