Formulaire et piece jointe

ptite59 -  
mehdikoris Messages postés 168 Statut Membre -
Bonjour,

J'ai créé un formulaire pour l'envoi d'une description et d'un fichier joint...
j'ai beau écrire en long et en large que cette piece jointe doit etre un dossier ZIP mais faut croire que les gens ne savent pas lire... Est il possible de forcer l'envoi de ce fichier en ZIP ou RAR? c'est à dire que le formulaire ne s'enverra pas si le format n'est pas le bon...

Merci à tous

5 réponses

Psyk974 Messages postés 559 Statut Membre 51
 
Salut,

Une méthode pour contourner ce problème serait de contrôler l'extension du fichier avant l'envoi à l'aide de PHP bien sûr si tu utilises ce langage.

Exemple :

$extension = substr($_FILES['fichier_import']['name'],-4,4);
if ($extension == ".zip") {
      //ton code...
}
else {
      $erreur = "Format zip svp !"
}


Mais soyons d'accord, l'utilisateur peut tout a fait modifier l'extension de son fichier avant de l'envoyer mais cela limitera pas mal les dégâts on est d'accord ? lol

Allez ciao !
0
ptite59
 
mon formulaire est dans une page htm mais un fichier php est utilisé pour le script...
je suppose que je dois ajouter cela dans le fichier php?

dur dur le php quand on debute
0
NookZ Messages postés 2376 Statut Membre 514
 
Il suffit normalement d'utiliser une expression régulière qui testera le nom du fichier envoyé.
Quelque chose dans le genre :

<script language="javascript">
var mask = '.rar|.zip$';
var reg = new RegExp(mask,"g");
if(reg.test("nomdufichier")) {
alert("Les fichiers ZIP et RAR sont interdits!");
}
else {
formulaire.submit();
}
</script>
0
ptite59
 
ok merci

j'ai essayé en mettant le script a la fin de mon formulaire juste avec </form> mais ca n'a pas marché
0
NookZ Messages postés 2376 Statut Membre 514
 
En fait faudrait le mettre avant le </head> et plutôt ainsi :
<script language="javascript">
function verif(text)
var mask = '.rar|.zip$';
var reg = new RegExp(mask,"g");
if(reg.test(text)) {
alert("Les fichiers ZIP et RAR sont interdits!");
}
else {
formulaire.submit();
}
}
</script>

et sur ton bouton d'envoi du formulaire tu mets un <input="button" onclick="verif(document.getElementById(iddetonchampdefichier).value);"> à la place de ton bouton type submit
0
ptite59
 
Pas marcher non plus

Voila mon formulaire

<form vname="FormName" action="mail/PHPFormmail.php" method="post" enctype="multipart/form-data" name="form">
<table width="630" border="0" align="center" cellpadding="5" cellspacing="0">
<tr>
<td width="113"><div align="left">Expéditeur:</div></td>
<td width="497"><div align="left">
<input type="text" name="email" size="50">
</div></td>
</tr>
<tr>
<td><div align="left">Sujet</div></td>
<td><div align="left">
<input name="subject" type="text" value="contribution pour votre site" size="50" />
</div></td>
</tr>
<tr>
<td><div align="left">Message</div></td>
<td><div align="left">
<textarea rows="18" name="msg" cols="70"></textarea>
</div></td>
</tr>
<tr>
<td><div align="left">Fichier joint: <strong>ZIP</strong> </div></td>
<td><div align="left">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
<input name="NomFichier" type="file" size="50">
</div></td>
</tr>
<tr>
<td><div align="left"></div></td>
<td>
<div align="center">
<input type="submit" value="Envoyer" onclick="verif(document.getElementById(iddetonchampdefichier).value);">
<br />
<strong>Patientez pendant l'envoi </strong></div></td></tr>
</table>
<p> </p>
</form>

Ca te parlera peut etre plus

merci en tout cas
0
NookZ Messages postés 2376 Statut Membre 514 > ptite59
 
faut aps faire des copier/coller bêtement aussi -_-

ça
<input name="NomFichier" type="file" size="50">
remplacé par
<input id="filename" name="NomFichier" type="file" size="50">

ça
<input type="submit" value="Envoyer" onclick="verif(document.getElementById(iddetonchampdefichier).value);">
remplacé par
<input type="button" value="Envoyer" onclick="verif(document.getElementById('filename').value);">

et si comprend pas ce que ça fait ça sert pas à grand chose...
0
ptite59 > NookZ Messages postés 2376 Statut Membre
 
Ben maintenant ca n envoi plus rien lol

Je te redonne ce que j'ai écrit

dans le <head></head>:

<script language="javascript">
function verif(text)
var mask = '.jpg|.jpeg|.gig|.bmp$';
var reg = new RegExp(mask,"g");
if(reg.test(text)) {
alert("Envoi des fichiers UNIQUEMENT par ZIP ou RAR! Merci");
}
else {
formulaire.submit();
}
}
</script>

le formulaire:

<form vname="FormName" action="mail/PHPFormmail.php" method="post" enctype="multipart/form-data" name="form">
<table width="630" border="0" align="center" cellpadding="5" cellspacing="0">
<tr>
<td width="113"><div align="left">Expéditeur:</div></td>
<td width="497"><div align="left">
<input type="text" name="email" size="50">
</div></td>
</tr>
<tr>
<td><div align="left">Sujet</div></td>
<td><div align="left">
<input name="subject" type="text" value="contribution pour votre site" size="50" />
</div></td>
</tr>
<tr>
<td><div align="left">Message</div></td>
<td><div align="left">
<textarea rows="18" name="msg" cols="70"></textarea>
</div></td>
</tr>
<tr>
<td><div align="left">Fichier joint: <strong>ZIP</strong> </div></td>
<td><div align="left">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
<input id="filename" name="NomFichier" type="file" size="50"> </div></td>
</tr>
<tr>
<td><div align="left"></div></td>
<td>
<div align="center">
<input type="button" value="Envoyer" onclick="verif(document.getElementById('filename').value);">
<br />
<strong>Patientez pendant l'envoi </strong></div></td></tr>
</table>
<p> </p>
</form>

Merci merci merci
0
NookZ Messages postés 2376 Statut Membre 514
 
else {
formulaire.submit();
}

=>

else {
document.forms['form'].submit();
}
0
ptite59
 
Merci pour ton aide mais ca ne marche toujours pas...

Je laisse mon formulaire comme ca tant pis
0
NookZ Messages postés 2376 Statut Membre 514 > ptite59
 
je testerai ce soir, si j'y pense. Je t'enverrais une solution par MP si tu veux, c'est juste que là j'ai pas de quoi tester ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mehdikoris Messages postés 168 Statut Membre 32
 
Bonjour
Voir ce post : http://www.commentcamarche.net/forum/affich 2221793 insertion d image sur base de donnees mysql?#9
de préférence tu upload les fichiers sur ton serveur par le formulaire et tu les géres sur tons serveur, pour des fins de sécurité veuillez limitez les types de fichiers a uploader aussi la taille du fichier toutes les options sont sur le post.
Bonne chance
0