Se connecter avec
S'enregistrer | Connectez-vous

Traitement d'un formulaire php, envoi d'un fichier

Dernière réponse : dans Programmation

Bonjour,

J'ai créér un formulaire html, avec un traitement php que voici:

  1. <?php
  2. $pseudo = $_POST['pseudo'];
  3. $mail = $_POST['mail'];
  4. $titre = $_POST['titre'];
  5. $url = $_POST['url'];
  6. $ban = $_POST['ban'];
  7. $desc = $_POST['desc'];
  8. $priorite = $_POST['priorite'];
  9.  
  10. echo("<p align=\"center\"><font face=\"Comic Sans MS\" size=\"2\"><font color=\"#FFFFFF\">Merci <font color=\"#FF0000\"><u>$pseudo</u></font>,<br>votre message a bien été envoyé.<br>Le webmaster va faire son possible pour vous vous répondre au plus vite à: <font color=\"#FF0000\"><u>$mail</u></font></font></font></p><br><br>");
  11.  
  12. $recipient = "**********@*******.****";
  13. $subject = "Partenaires";
  14.  
  15. $msg = "Pseudo:\t$pseudo\n";
  16. $msg .= "E-Mail:\t$mail\n";
  17. $msg .= "Url du site:\t$url\n";
  18. $msg .= "Bannière:\t$ban\n";
  19. $msg .= "Description:\t$desc\n";
  20. $msg .= "Priorite:\t$priorite\n";
  21.  
  22. mail($recipient, $subject, $msg);
  23. ?>


Ce formulaire ce nomme liens.php3

Je souhaiterai que les personne remplissant ce formulaire puisse envoyer leur banniere. Ceci di je ne sait comment traiter ce probleme.

Si possible je souhiterai aussi savoir comment empecher l'utilisateur d'envoyer le message temps qu'il n'a pas rempli les champ obligatoire du formulaire.

Voici mon formulaire html:

  1. <form method="post" action="liens.php3">
  2. <table align="center" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="57%">
  3. <tr>
  4. <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Nom ou Pseudo</u> : <font color="#FF0000">*</font></font></td>
  5. <td width="75%"><input type="text" name="pseudo" size="20"></td>
  6. </tr>
  7. <tr>
  8. <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>E-mail</u> : <font color="#FF0000">*</font></font></td>
  9. <td width="75%"><input type="text" name="mail" size="20"></td>
  10. </tr>
  11. <tr>
  12. <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Titre du site</u> : <font color="#FF0000">*</font></font></td>
  13. <td width="75%"><input type="text" name="titre" size="20"></td>
  14. </tr>
  15. <tr>
  16. <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Url du site</u> : <font color="#FF0000">*</font></font></td>
  17. <td width="75%"><input type="text" name="url" value="http://" size="20"></td>
  18. </tr>
  19. <tr>
  20. <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Bannière du site</u> :</font></td>
  21. <td width="75%"><input type="file" name="ban" size="20"></td>
  22. </tr>
  23. <tr>
  24. <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Description</u> :</font></td>
  25. <td width="75%"><textarea name="desc" rows=5 cols=30></textarea></td>
  26. </tr>
  27. <tr>
  28. <td width="47%"><font color="#FFFFFF" face="Comic Sans Ms"><u>Priorité</u> :</font></td>
  29. <td width="75%"><select name="priorite" size="1"><option value="Haute">Haute</option><option value="Normale">Normale</option><option value="Basse">Basse</option></select></td>
  30. </tr>
  31. </table>
  32. <p align="center"><input type="reset" value="Initialiser">
  33. <input type="submit" value="Envoyer"></p>
  34. </form>


Merci de votre réponse.
Lassé par la pub ? Créez un compte

et les balises [code] :fou: 

pour le banniere : soit tu proposes un champ de type file de maniere a uploader l'image sur le serveur. ensuite tu modifie le mail pour que tu saches quel fichier a ete uploader par qui. soit tu demande juste l'url du fichier image...

pour ne pas envoyer des données vides, faut simplement verifier que les données ne sont pas vides...

J'ai fait comme vous avez dit plus haut, mais j'ai un problème qui s'affiche quand je test le formulaire.

  1. Attaque par upload potentielle. Voici plus d'informations :
  2. Voici quelques informations de déboguage :Array
  3. (
  4. [ban] => Array
  5. (
  6. [name] => logo.jpg
  7. [type] => image/pjpeg
  8. [tmp_name] => /mnt/sessions/phpaMdD6s
  9. [error] => 0
  10. [size] => 1714
  11. )
  12.  
  13.  
  14. )


Mon code html n'a pas tellement changé, le voici :

  1. <form enctype="multipart/form-data" method="post" action="liens.php3">
  2. <table align="center" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="57%">
  3. <tr>
  4. <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Nom ou Pseudo</u> : <font color="#FF0000">*</font></font></td>
  5. <td width="75%"><input type="text" name="pseudo" size="20"></td>
  6. </tr>
  7. <tr>
  8. <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>E-mail</u> : <font color="#FF0000">*</font></font></td>
  9. <td width="75%"><input type="text" name="mail" size="20"></td>
  10. </tr>
  11. <tr>
  12. <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Titre du site</u> : <font color="#FF0000">*</font></font></td>
  13. <td width="75%"><input type="text" name="titre" size="20"></td>
  14. </tr>
  15. <tr>
  16. <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Url du site</u> : <font color="#FF0000">*</font></font></td>
  17. <td width="75%"><input type="text" name="url" value="http://" size="20"></td>
  18. </tr>
  19. <tr>
  20. <td width="47%"><input type="hidden" name="MAX_FILE_SIZE" value="30000"><font color="#FFFFFF" face="Comic Sans MS"><u>Bannière du site</u> :</font></td>
  21. <td width="75%"><input type="file" name="ban" size="20"></td>
  22. </tr>
  23. <tr>
  24. <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Description</u> :</font></td>
  25. <td width="75%"><textarea name="desc" rows=5 cols=30></textarea></td>
  26. </tr>
  27. <tr>
  28. <td width="47%"><font color="#FFFFFF" face="Comic Sans Ms"><u>Priorité</u> :</font></td>
  29. <td width="75%"><select name="priorite" size="1"><option value="Haute">Haute</option><option value="Normale">Normale</option><option value="Basse">Basse</option></select></td>
  30. </tr>
  31. </table>
  32. <p align="center"><input type="reset" value="Initialiser">
  33. <input type="submit" value="Envoyer"></p>
  34. </form>



Pour mon code php il en est ainsi :

  1. <?php
  2. $pseudo = $_POST['pseudo'];
  3. $mail = $_POST['mail'];
  4. $titre = $_POST['titre'];
  5. $url = $_POST['url'];
  6. $desc = $_POST['desc'];
  7. $priorite = $_POST['priorite'];
  8. $uploaddir = '/www/uploads/';
  9. $uploadfile = $uploaddir . basename($_FILES['ban']['name']['size']['type']);
  10.  
  11. echo '<pre>';
  12. if (move_uploaded_file($_FILES['ban']['ban_part'], $uploadfile)) {
  13. echo "Le fichier est valide, et a été téléchargé
  14. avec succès. Voici plus d'informations :\n";
  15. } else {
  16. echo "Attaque par upload potentielle. Voici plus d'informations :\n";
  17. }
  18.  
  19. echo 'Voici quelques informations de déboguage :';
  20. print_r($_FILES);
  21.  
  22. echo '</pre>';
  23.  
  24. echo("<p align=\"center\"><font face=\"Comic Sans MS\" size=\"2\"><font color=\"#FFFFFF\">Merci <font color=\"#FF0000\"><u>$pseudo</u></font>,<br>votre message a bien été envoyé.<br>Le webmaster va faire son possible pour vous vous répondre au plus vite à: <font color=\"#FF0000\"><u>$mail</u></font></font></font></p><br><br>");
  25.  
  26. $recipient = "demonjunior07@laposte.net";
  27. $subject = "Partenaires";
  28.  
  29. $msg = "Pseudo:\t$pseudo\n";
  30. $msg .= "E-Mail:\t$mail\n";
  31. $msg .= "Url du site:\t$url\n";
  32. $msg .= "Bannière:\t$ban\n";
  33. $msg .= "Description:\t$desc\n";
  34. $msg .= "Priorite:\t$priorite\n";
  35.  
  36. mail($recipient, $subject, $msg);
  37. ?>


Encore merci pour l'aide que vous m'apporter.

Je souhaiterai savoir, maintenant mon formulaire est comme ca :
  1. <?php
  2. $pseudo = $_POST['pseudo'];
  3. $mail = $_POST['mail'];
  4. $titre = $_POST['titre'];
  5. $url = $_POST['url'];
  6. $desc = $_POST['desc'];
  7. $priorite = $_POST['priorite'];
  8.  
  9. echo("<p align=\"center\"><font face=\"Comic Sans MS\" size=\"2\"><font color=\"#FFFFFF\">Merci <font color=\"#FF0000\"><u>$pseudo</u></font>,<br>votre message a bien été envoyé.<br>Le webmaster va faire son possible pour vous vous répondre au plus vite à: <font color=\"#FF0000\"><u>$mail</u></font></font></font></p>
  10.  
  11. //on vérifies que le champ est bien rempli:
  12. if(!empty($_FILES["ban"]["name"]))
  13. {
  14. //nom du fichier choisi:
  15. $nomFichier = $_FILES["ban"]["name"] ;
  16. //nom temporaire sur le serveur:
  17. $nomTemporaire = $_FILES["ban"]["tmp_name"] ;
  18. //type du fichier choisi:
  19. $typeFichier = $_FILES["ban"]["type"] ;
  20. //poids en octets du fichier choisit:
  21. $poidsFichier = $_FILES["ban"]["size"] ;
  22. //code de l'erreur si jamais il y en a une:
  23. $codeErreur = $_FILES["ban"]["error"] ;
  24.  
  25. //chemin qui mène au dossier qui va contenir les fichiers uplaod:
  26. $chemin = "./uploads/" ;
  27.  
  28. if(copy($nomTemporaire, $chemin.$nomFichier))
  29.  
  30. echo("<p align=\"center\"><font face=\"Comic Sans MS\" size=\"2\"><font color=\"#FFFFFF\">l'upload a réussi</font>") ;
  31. else
  32. echo("<p align=\"center\"><font face=\"Comic Sans MS\" size=\"2\"><font color=\"#FFFFFF\">l'upload a échoué</font>") ;
  33. }//fin if
  34. else
  35. {
  36. echo("<p align=\"center\"><font face=\"Comic Sans MS\" size=\"2\"><font color=\"#FFFFFF\">Vous n'avez pas choisit de fichier!!</font>") ;
  37. echo("<a href=\"liens.html\">Retour</a>") ;
  38. }//fin else
  39.  
  40. $recipient = "demonjunior07@laposte.net";
  41. $subject = "Partenaires";
  42.  
  43. $msg = "Pseudo:\t$pseudo\n";
  44. $msg .= "E-Mail:\t$mail\n";
  45. $msg .= "Url du site:\t$url\n";
  46. $msg .= "Bannière:\t$ban\n";
  47. $msg .= "Description:\t$desc\n";
  48. $msg .= "Priorite:\t$priorite\n";
  49.  
  50. mail($recipient, $subject, $msg);
  51. ?>


Jsuis obliger de mettre ceci:

  1. echo("<p align=\"center\"><font face=\"Comic Sans MS\" size=\"2\"><font color=\"#FFFFFF\">Merci <font color=\"#FF0000\"><u>$pseudo</u></font>,<br>votre message a bien été envoyé.<br>Le webmaster va faire son possible pour vous vous répondre au plus vite à: <font color=\"#FF0000\"><u>$mail</u></font></font></font></p>


Avec un if
  1. (!empty($var))

pour qu'on ne le voit pas tant ke les champs obligatoire ne son pas rempli?

euh...
1/ a balise (html) <font> est dépréciciée. faut utiliser les css...
2/ non, au fait, faut faire le traitement dans la meme page que celle qui affiche le formulaire
  1. si(toute les variables bien remplies)
  2. traitement des donnée
  3. sinon
  4. si(au moins une des variable est remplie)
  5. afficher message comme quoi, on doit tout remplir
  6. afficher formulaire
Lassé par la pub ? Créez un compte