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

  • Auteur de la discussion Helrod
  • Date de début

Helrod

Nouveau membre
Bonjour,

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

Code:
<?php 
$pseudo = $_POST['pseudo'];
$mail = $_POST['mail'];
$titre = $_POST['titre'];
$url = $_POST['url'];
$ban = $_POST['ban'];
$desc = $_POST['desc'];
$priorite = $_POST['priorite'];

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>");

$recipient = "**********@*******.****";
$subject = "Partenaires";

$msg = "Pseudo:\t$pseudo\n";
$msg .= "E-Mail:\t$mail\n";
$msg .= "Url du site:\t$url\n";
$msg .= "Bannière:\t$ban\n";
$msg .= "Description:\t$desc\n";
$msg .= "Priorite:\t$priorite\n";

mail($recipient, $subject, $msg);
?>

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:

Code:
<form method="post" action="liens.php3">
<table align="center" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="57%">
      <tr>
        <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Nom ou Pseudo</u> : <font color="#FF0000">*</font></font></td>
        <td width="75%"><input type="text" name="pseudo" size="20"></td>
      </tr>
      <tr>
        <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>E-mail</u> : <font color="#FF0000">*</font></font></td>
        <td width="75%"><input type="text" name="mail" size="20"></td>
      </tr>
      <tr>
        <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Titre du site</u> : <font color="#FF0000">*</font></font></td>
        <td width="75%"><input type="text" name="titre" size="20"></td>
      </tr>
      <tr>
        <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Url du site</u> : <font color="#FF0000">*</font></font></td>
        <td width="75%"><input type="text" name="url" value="http://" size="20"></td>
      </tr>
	  <tr>
        <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Bannière du site</u> :</font></td>
        <td width="75%"><input type="file" name="ban" size="20"></td>
      </tr>
      <tr>
        <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Description</u> :</font></td>
        <td width="75%"><textarea name="desc" rows=5 cols=30></textarea></td>
      </tr>
	  <tr>
		<td width="47%"><font color="#FFFFFF" face="Comic Sans Ms"><u>Priorité</u> :</font></td>
		<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>
     </tr>
    </table>
	<p align="center"><input type="reset" value="Initialiser">
	<input type="submit" value="Envoyer"></p>
</form>

Merci de votre réponse.
 

KangOl

Grand Maître
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...
 

Helrod

Nouveau membre
Merci, mais comment je fait pr uploader un fichier sur le server.
 

KangOl

Grand Maître
tu met un <imput type="file" />
ensuite tu recupere les infos dans $_FILE[]
 

didiboy

Habitué
[citation=10697,0,4][nom]KangOl a écrit[/nom]tu met un <input type="file" />
ensuite tu recupere les infos dans $_FILE[][/citation]
:o deux fois que je te corriges aujourd'hui :ange:
 

KangOl

Grand Maître
bon, je vais aller nettoyer mes lunettes moi...

enfin, je pense qu'il aurai quand meme corrigé de lui meme au lieu de copier betement :o
 

Helrod

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

Code:
Attaque par upload potentielle. Voici plus d'informations :
Voici quelques informations de déboguage :Array
(
    [ban] => Array
        (
            [name] => logo.jpg
            [type] => image/pjpeg
            [tmp_name] => /mnt/sessions/phpaMdD6s
            [error] => 0
            [size] => 1714
        )


)

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

Code:
<form enctype="multipart/form-data" method="post" action="liens.php3">
<table align="center" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="57%">
      <tr>
        <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Nom ou Pseudo</u> : <font color="#FF0000">*</font></font></td>
        <td width="75%"><input type="text" name="pseudo" size="20"></td>
      </tr>
      <tr>
        <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>E-mail</u> : <font color="#FF0000">*</font></font></td>
        <td width="75%"><input type="text" name="mail" size="20"></td>
      </tr>
      <tr>
        <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Titre du site</u> : <font color="#FF0000">*</font></font></td>
        <td width="75%"><input type="text" name="titre" size="20"></td>
      </tr>
      <tr>
        <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Url du site</u> : <font color="#FF0000">*</font></font></td>
        <td width="75%"><input type="text" name="url" value="http://" size="20"></td>
      </tr>
	  <tr>
        <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>
        <td width="75%"><input type="file" name="ban" size="20"></td>
      </tr>
      <tr>
        <td width="47%"><font color="#FFFFFF" face="Comic Sans MS"><u>Description</u> :</font></td>
        <td width="75%"><textarea name="desc" rows=5 cols=30></textarea></td>
      </tr>
	  <tr>
		<td width="47%"><font color="#FFFFFF" face="Comic Sans Ms"><u>Priorité</u> :</font></td>
		<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>
     </tr>
    </table>
	<p align="center"><input type="reset" value="Initialiser">
	<input type="submit" value="Envoyer"></p>
</form>


Pour mon code php il en est ainsi :

Code:
<?php 
$pseudo = $_POST['pseudo'];
$mail = $_POST['mail'];
$titre = $_POST['titre'];
$url = $_POST['url'];
$desc = $_POST['desc'];
$priorite = $_POST['priorite'];
$uploaddir = '/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['ban']['name']['size']['type']);

echo '<pre>';
if (move_uploaded_file($_FILES['ban']['ban_part'], $uploadfile)) {
   echo "Le fichier est valide, et a été téléchargé 
           avec succès. Voici plus d'informations :\n";
} else {
   echo "Attaque par upload potentielle. Voici plus d'informations :\n";
}

echo 'Voici quelques informations de déboguage :';
print_r($_FILES);

echo '</pre>';

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>");

$recipient = "demonjunior07@laposte.net";
$subject = "Partenaires";

$msg = "Pseudo:\t$pseudo\n";
$msg .= "E-Mail:\t$mail\n";
$msg .= "Url du site:\t$url\n";
$msg .= "Bannière:\t$ban\n";
$msg .= "Description:\t$desc\n";
$msg .= "Priorite:\t$priorite\n";

mail($recipient, $subject, $msg);
?>

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

KangOl

Grand Maître
et verifie la facon dont tu recupere les infos de ton fichier...
 

KangOl

Grand Maître
bha réfléchi !
fait un echo de ton $uploadfile et tu verras...
de meme avec ton move_uploaded_file, regarde ce qui tu lui passe...
 

Helrod

Nouveau membre
Le problème c'est que c'est mon premier formulaire en php. Je ne connais pas encore toute les combine pour bien réussir.
Pouvez m'aider à comprendre ce ki ne marche pas?
 

KangOl

Grand Maître
a tu fais ce que j'ai dit ?
ca t'aiderais a comprendre tes erreurs...
 

Helrod

Nouveau membre
Je comprend pas ce ke vous voulez dire par "fait un echo de ton $uploadfile" voila pourquoi je ne voi pas l'erreur que vous vous voyer
 

KangOl

Grand Maître
ajoute la ligne
Code:
echo $$uploadfile;
apres la ligne 9...
 

Helrod

Nouveau membre
J'ai fait ce que vous maviez dit mais je ne vois toujours pas l'erreur.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 718 002
Membres
1 586 388
Dernier membre
mery2005
Partager cette page
Haut