Utiliser 2 input de type ' file ' dans un formulaire aide SVP
Résolu/Fermé
kribac
o'ganch - 1 août 2013 à 09:14
- Messages postés
- 105
- Date d'inscription
- mercredi 16 janvier 2008
- Statut
- Membre
- Dernière intervention
- 28 avril 2016
o'ganch - 1 août 2013 à 09:14
A voir également:
- Utiliser 2 input de type ' file ' dans un formulaire aide SVP
- Utiliser 2 input de type ' file ' dans un formulaire aide SVP ✓ - Forum - PHP
- Fentre parcourir de l'input de type "file" ✓ - Forum - PHP
- Recuperer le path dun input type file ✓ - Forum - Java
- Recupération de la valeur d'un input array() de type file ✓ - Forum - PHP
- Input type="file" ✓ - Forum - HTML
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
Modifié par kribac le 28/07/2013 à 12:32
- Messages postés
- 105
- Date d'inscription
- mercredi 16 janvier 2008
- Statut
- Membre
- Dernière intervention
- 28 avril 2016
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