Utiliser 2 input de type ' file ' dans un formulaire aide SVP
Résolu/Fermé
kribac
Messages postés
104
Date d'inscription
mercredi 16 janvier 2008
Statut
Membre
Dernière intervention
28 avril 2016
-
28 juil. 2013 à 11:27
o'ganch - 1 août 2013 à 09:14
o'ganch - 1 août 2013 à 09:14
A voir également:
- Utiliser 2 input de type ' file ' dans un formulaire aide SVP
- Utiliser chromecast - Guide
- Host file - Guide
- Formulaire de réclamation facebook - Guide
- .Dat file - Guide
- Word numéro de page 1/2 - Guide
3 réponses
a priori tu fais confiance dans ton utilisateur, lorsqu'il envoi des fichiers (aucune vérification des fichiers envoyés...
De plus, tes if () { }else{ } sont mal construits voire faux ...
dans ton formulaire tu peux enlever
dans trait.php tu dois réécrire tes if
tu peux retirer $_FILES tout seul, il sert à rien.
//testes si l'utilisateur a bien envoyé des fichiers...
//testes si l'extension correspond bien a du jpg ou pdf
//commente tes header afin de vérifier que tout tes tests se sont bien passés.
//header ("location: ...);
//tu fais un test en base pour vérifier l'existence du modèle, tu peux très bien le faire au niveau du fichier, puisque tu le renommes avec le nom du modèle.
grosso modo ça donnerait quelque chose comme
n'hésites pas à poster, si tu bloques ...
Si tu veux envoyer tout le bousin sans vérif'
De plus, tes if () { }else{ } sont mal construits voire faux ...
dans ton formulaire tu peux enlever
<input type="hidden" name="MAX_FILE_SIZE" value="2097152"> ce sont les mêmes.
dans trait.php tu dois réécrire tes if
tu peux retirer $_FILES tout seul, il sert à rien.
//testes si l'utilisateur a bien envoyé des fichiers...
//testes si l'extension correspond bien a du jpg ou pdf
//commente tes header afin de vérifier que tout tes tests se sont bien passés.
//header ("location: ...);
echo "<pre>"; print_r($_POST); print_r($_FILES); echo "</pre>"; if( (!empty($_FILES["img"]) && ($_FILES['img']['error'] == 0)) && ( !empty($_FILES["pdf"]) && ($_FILES['pdf']['error'] == 0) ) ) { //on continue les vérifs }else{ //pas de fichiers //on retourne au formulaire }//fin if test si utilisateur a envoyé fichier
//tu fais un test en base pour vérifier l'existence du modèle, tu peux très bien le faire au niveau du fichier, puisque tu le renommes avec le nom du modèle.
if (!file_exists($chemindestination_modeleimage) || !file_exists($chemindestination_modelepdf) ) { //on continue les vérifs }else{ //le modèle existe déjà }
grosso modo ça donnerait quelque chose comme
if ( utilisateur_a_bien_envoyé_un fichier ){ if (l_extension_du_fichier_correspond_a_jpg_et du_pdf et_que_la_taille_ne_depasse_pas_mon_max_files_size){ if (le_modele_existe_dejà){ if (les_fichiers_sont_bien_envoyes){ //donc on peut faire la requete d'insertion }else{ //pb upload } }else{ //pb le modele existe deja } }else{ //ce n'est pas un jpg ou du pdf ou alors la taille des fichiers dépasse la taille autorisé } }else{ //on pas recu les deux fichiers (img et pdf) }
n'hésites pas à poster, si tu bloques ...
Si tu veux envoyer tout le bousin sans vérif'
$connect=mysql_connect('localhost','root',''); $connectbdd=mysql_select_db('arcgroupe',$connect); if($connectbdd){ $sql="Select * from hit_minipelle where model='".$model."'"; $resultat=mysql_query($sql); $test=mysql_num_rows($resultat); if($test != 0) { //header("location:ajout.php?msg=".$msg='exist'); }else{ $chemin_destination = 'dirname(__FILE__).'/images/'; move_uploaded_file($_FILES['img']['tmp_name'],$chemin_destination.$model.'.jpg'); move_uploaded_file($_FILES['pdf']['tmp_name'], $chemin_destination.$model.'.pdf'); $sql="INSERT INTO arcgroupe.hit_minipelle VALUES ('".$model."','".$capacite."','".$poid."','".$puissance."','".$model.".jpg','".$model.".pdf')"; mysql_query($sql); //header("location:ajout.php?msgpos=".$msgpos='work'); }//fin if $test }else{ //erreur }//fin $connnect bdd
kribac
Messages postés
104
Date d'inscription
mercredi 16 janvier 2008
Statut
Membre
Dernière intervention
28 avril 2016
10
Modifié par kribac le 28/07/2013 à 12:32
Modifié par kribac le 28/07/2013 à 12:32
VOILA mon formulaire HTML
et VOILA le trait.php
<form class="register active" method="post" action="trait.php" enctype="multipart/form-data"> <div > <div> <label>Model:</label> <input type="text" name="model" id="model" /> </div> <div> <label>Capacite:</label> <input type="text" name="capacite" id="capacite" /> </div> <div> <label>Poid:</label> <input type="text" name="poid" id="poid" /> </div> <div> <label>Puissance:</label> <input type="text" name="puissance" id="puissance"/> </div> <div> <label>Image (JPEG):</label> <input type="hidden" name="MAX_FILE_SIZE" value="2097152"> <input type="file" name="img"> </div> <div> <label>Brochure (PDF):</label> <input type="hidden" name="MAX_FILE_SIZE" value="2097152"> <input type="file" name="pdf"> </div> <div> <input type="submit" value="ajouter" /> </div> </div> </form>
et VOILA le trait.php
<?php $model=$_POST['model']; $capacite=$_POST['capacite']; $poid=$_POST['poid']; $puissance=$_POST['puissance']; $test=0; $connect=mysql_connect('localhost','root',''); $connectbdd=mysql_select_db('arcgroupe',$connect); if($connectbdd) { $sql="Select * from hit_minipelle where model='".$model."'"; $resultat=mysql_query($sql); $test=mysql_num_rows($resultat); { if($test != 0) { header("location:ajout.php?msg=".$msg='exist'); } else { $_FILES; $chemin_destination = 'C:/wamp/www/monsite/images/'; move_uploaded_file($_FILES['img']['tmp_name'], $chemin_destination.$model.'.jpg'); move_uploaded_file($_FILES['pdf']['tmp_name'], $chemin_destination.$model.'.pdf'); $sql="INSERT INTO arcgroupe.hit_minipelle VALUES ('".$model."','".$capacite."','".$poid."','".$puissance."','".$model.".jpg','".$model.".pdf')"; mysql_query($sql); header("location:ajout.php?msgpos=".$msgpos='work'); } } } else { echo "Erreur !!!"; } ?>
31 juil. 2013 à 12:42
1 août 2013 à 09:14