Script formulaire php avec possibilité de joindre un fichier-image

Nouveau WRInaute
Bonjour,
pouvez-vous me recommander un script php, ergonomique, facile à paramétrer et offrant la possibilité à l'internaute de joindre une pièce, un image par exemple ?
Dernière précision, le script concerne un site hébergé chez OVH.
En vous remerciant.
Metalco.
 
WRInaute accro
Non c'est à toi de sécuriser tout ce qui a trait à la récupération du fichier et à sa transmission à phpmailer. Enfin perso c'est comme ça que je procède : test de type de contenu, poids, etc.
 
Nouveau WRInaute
Merci UsagiYojimbo pour ce précieux retour.
Je suis complètement néophyte sur tout ce qui est évaluation de risques et sécurisation de site web.
J'avais imaginé, visiblement à tort, que dans la mesure où il n'y a pas de données entrantes dans une base de données (sql), le risque était limité.

J'ai vu qu'il y avait un script d'envoi de mail safe avec xajax sur ce site.
Comme je n'ai pas la connaissance suffisante pour protéger moi-même le formulaire, peut-être devrais-je intégrer ce script (solution de facilité) ? Qu'en penses-tu ?
As-tu une ressource qui me permettrait sécuriser facilement (pas un tuto de 300 pages :cry: ) le formulaire d'envoi de mail avec pièces jointes ?
Mille merci pour la disponibilité dont tu as fait preuve.
MetalCo
 
Nouveau WRInaute
Salut,

je suis l'admin du -http://blog.myeasyprog.fr/ .
Qu'est-ce que tu entends par "sécuriser l'envoie de pièce jointe"? Je peux sûrement t'aider.
 
Nouveau WRInaute
Bonjour olivierperez,
merci beaucoup pour ta venue ici !
J'ai trouvé quelques éléments pour sécuriser l'envoi de pièces jointes en php.
A priori je vais effectuer les vérification suivantes :
  • Poids de l'image <800 Ko
  • Extension autorisée : 'jpg', 'jpeg', 'gif', 'png'
  • Vérification que le téléchargement du fichier a été réalisé par Http Post grâce à is_uploaded_file.
[Tout cela, je sais le faire]
Peut-être, y'a t-il des éléments que j'oublie.
En tout cas, je salue ton geste de venir ici !
Merci.
 
WRInaute accro
Vérifier l'extension c'est bien mais ce n'est pas le plus efficace, car il est assez simple de renommer un fichier exe en jpg. Il faut donc aussi vérifier le type mime.
 
Nouveau WRInaute
Merci UsagiYojimbo, :wink:
une pierre de plus à l'édifice pour améliorer la sécurité du formulaire.
Je progresse.
Je vais essayer de trouver un tuto pour cette vérification.
 
Nouveau WRInaute
Salut, pour la sécurisation des fichiers j'avais fait il y a quelques temps un petite classe statique pour gérer entre autres l'upload de façon sécurisée. Tu peux la télécharger à cette adresse : http://blog.myeasyprog.fr/wp-content/uploads/2009/09/OPFiles.inc.rar

Tu appelle la méthode de cette façon :
Code:
$retour = OPFiles::UploadFile($_FILES['ton_champ'], array('jpg','jpeg','png'), 2000000, './dossier_destination/', time());

$_FILES['ton_champ'] : 'ton_champ' est le nom de ton champ type="file"
array('jpg','jpeg','png') : Tableau des extensions acceptées
2000000 : Poids maximum du fichier (en octet)
'./dossier_destination/' : Dossier dans lequel va être sauvegardé ton fichier uploadé
time() : Ajoute le timestamp à la fin du nom de fichier pour permettre d'avoir 2 fichiers du même nom

La variable $retour récupère un tableau. La première case de ce tableau correspond au numéro de l'erreur, tu peux l'utiliser comme ça :
Code:
	switch($retour[0]){
		case 0:
			$fichier_uploaded = $retour[1];
			// La tu peux envoyer ton mail
			break;
		case 1:
			$error = 'Erreur lors de l\'upload ('.$OPFiles_uploadErrors[$retour_upload[1]].')';
			break;
		case 2:
			$error = 'Le mime-type envoyé et celui trouvé sont différent ('.$retour_upload[2].'/'.$retour_upload[3].')';
			break;
		case 3:
			$error = 'Le fichier est trop gros par rapport à ce que le programme autorise';
			break;
		case 4:
			$error = 'Seul les ZIP sont acceptés';
			break;
	}

Si tu as des questions, n'hésite surtout pas.
 
Nouveau WRInaute
Merci Olivier.
Je vais prendre un peu de temps pour tester tout cela (et le comprendre car je ne suis pas familier de ces problèmes).
Si jamais cela dépasse ma limite cognitive ($_FILES["cerveau"]['size'] > 80], je vous contacte. :)
Merci à vous deux pour votre aide.
 
Discussions similaires
Haut