PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 27-10-2009 18:26:08

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

formulaire, seul la 1er lettre d'une image s'insére dans la table .

Bonjour à tous,

j'ai fini mon code pour l'upload multiple. Et une personne ma gentiment corrigé mes groooooosses erreurs.
Seulement voila, maintenant, je n'ai que la 1er lettre de l'image qui s'insère dans ma table, l'upload fonctionne, et toutes les variables s'insère correctement sauf les aFile (nom du fichier envoyé)

Et je bloque. sad

Merci d'avance de m'indiquer mon erreur ou un code érroné wink

 

$date= date("ymdhis");
$promotion = (!empty($_POST['promotion'])) ? addslashes($_POST['promotion']) : '';
$ordrepromo = (!empty($_POST['ordrepromo'])) ? addslashes($_POST['ordrepromo']) : '';
$nouveautes = (!empty($_POST['nouveautes'])) ? addslashes($_POST['nouveautes']) : '';
$ordrenouveaute = (!empty($_POST['ordrenouveaute'])) ? addslashes($_POST['ordrenouveaute']) : '';
$rubrique = (!empty($_POST['rubrique'])) ? addslashes($_POST['rubrique']) : '';
$sousrubriques = (!empty($_POST['sousrubriques'])) ? addslashes($_POST['sousrubriques']) : '';
$marque = (!empty($_POST['marque'])) ? addslashes($_POST['marque']) : '';
$nomcuisine = (!empty($_POST['nomcuisine'])) ? addslashes($_POST['nomcuisine']) : '';
$encastrable = (!empty($_POST['encastrable'])) ? addslashes($_POST['encastrable']) : '';
$posable = (!empty($_POST['posable'])) ? addslashes($_POST['posable']) : '';
$nom = (!empty($_POST['nom'])) ? addslashes($_POST['nom']) : '';
$reference = (!empty($_POST['reference'])) ? addslashes($_POST['reference']) : '';
$description = (!empty($_POST['description'])) ? addslashes($_POST['description']) : '';
$note = (!empty($_POST['note'])) ? addslashes($_POST['note']) : '';
$avis = (!empty($_POST['avis'])) ? addslashes($_POST['avis']) : '';
$garantie = (!empty($_POST['garantie'])) ? addslashes($_POST['garantie']) : '';
$label = (!empty($_POST['label'])) ? addslashes($_POST['label']) : '';
$consommation = (!empty($_POST['consommation'])) ? addslashes($_POST['consommation']) : '';
$dimension = (!empty($_POST['dimension'])) ? addslashes($_POST['dimension']) : '';
$colori = (!empty($_POST['colori'])) ? addslashes($_POST['colori']) : '';
$prix = (!empty($_POST['prix'])) ? addslashes($_POST['prix']) : '';
$promo = (!empty($_POST['promo'])) ? addslashes($_POST['promo']) : '';

$aFile=$val[aFile];
$aFile2=$val[aFile2];
$aFile3=$val[aFile3];
$aFile4=$val[aFile4];
$aFile5=$val[aFile5];
$aFile6=$val[aFile6];
$aFile7=$val[aFile7];


  $addedFiles = array();
  foreach ($_FILES as $name => $file)
  {
         if (is_uploaded_file($file['tmp_name']))
         {
     copy($file['tmp_name'], "./upload/".$file['name']);
             $addedFiles[$name] = mysql_real_escape_string($file['name']);
     
         }
      }
      $query = "
         INSERT INTO produits
             (date, promotion, ordrepromo, nouveautes, ordrenouveaute, rubrique,
             sousrubriques, marque, nomcuisine, encastrable, posable, nom, reference,
             description, note, avis, garantie, label, consommation, dimension, colori,
             prix, promo, aFile, aFile2, aFile3, aFile4, aFile5, aFile6, aFile7)
         VALUES
             (NOW(), '$promotion', '$ordrepromo', '$nouveautes', '$ordrenouveaute', '$rubrique',
             '$sousrubriques', '$marque', '$nomcuisine', '$encastrable', '$posable', '$nom', '$reference',
             '$description','$note','$avis','$garantie','$label','$consommation','$dimension','$colori','$prix','$promo'"
;
       
  $query .= isset($addedFiles['aFile']) ? ", '".$addedFiles['aFile']['name']."'" : ", ''";
  $query .= isset($addedFiles['aFile2']) ? ", '".$addedFiles['aFile2']['name']."'" : ", ''";
  $query .= isset($addedFiles['aFile3']) ? ", '".$addedFiles['aFile3']['name']."'" : ", ''";
  $query .= isset($addedFiles['aFile4']) ? ", '".$addedFiles['aFile4']['name']."'" : ", ''";
  $query .= isset($addedFiles['aFile5']) ? ", '".$addedFiles['aFile5']['name']."'" : ", ''";
  $query .= isset($addedFiles['aFile6']) ? ", '".$addedFiles['aFile6']['name']."'" : ", ''";
  $query .= isset($addedFiles['aFile7']) ? ", '".$addedFiles['aFile7']['name']."'" : ", ''"; 
      $query .= " )";

  echo "Pas de fichier téléchargé !?";


$res = mysql_query($query) or die(mysql_error());

echo 'Vos donnees sont enregistrees.';
mysql_close();
?>

Hors ligne

#2 28-10-2009 12:08:41

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : formulaire, seul la 1er lettre d'une image s'insére dans la table .

Saluton,
Si tu regardes de plus près ton script, tu devrais voir une différence notable entre les lignes 27 à 33 et les lignes 57 à 63.
Je ne saurais affirmer que ton problème réside dans ces différences, mais tu devrais y réfléchir.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 29-10-2009 09:29:48

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

Re : formulaire, seul la 1er lettre d'une image s'insére dans la table .

J'ai trouvé ce que tu me disais :

#
$aFile7=$val['aFile7'];

mais ça ne change pas mon problème de nom ou juste la 1er lettre s'insère dans la table. hmm

Hors ligne

#4 29-10-2009 12:46:14

Maskime
Membre
Lieu : Paris 15ème
Inscription : 11-05-2009
Messages : 134
Site Web

Re : formulaire, seul la 1er lettre d'une image s'insére dans la table .

Hello,

Moi j'ai quand même une question : D'où vient la variable $val ? [DTC Protect]
Parce que ca me parait bizarre de récupérer le contenu d'un tableau avec un tableau qui n'est pas un string :


$aFile=$val[aFile];
//Devrait plutôt être
$aFile=$val['aFile'];
 

Parce que sinon voilà ce qui se passe:
PHP essaye de résoudre la constante 'aFile', comme elle n'est pas définie il l'interprète la valeur numérique, soit '0'. Si $val n'est pas un tableau mais une chaine de caractère, il va te récupérer le premier caractère de la chaîne.

D'où la question : D'où viens la variable '$val' smile


La programmation est composée de 80% de réflexion pour 20% de syntaxe -> réfléchissez à votre problème par étapes

Recommande l'utilisation du pattern Singleton
Si jamais je poste un morceau de code pour vous aider, prenez bien compte que je n'ai pas forcément testé le code que je poste et qu'il est possible qu'il contienne des erreurs wink

Hors ligne

#5 29-10-2009 14:15:56

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

Re : formulaire, seul la 1er lettre d'une image s'insére dans la table .

Effectivement $val n'a rien à faire ici, donc j'ai écrit :

$aFile='aFile';

Mais rien ... toujours la première lettre qui s'inscrit.

Hors ligne

#6 29-10-2009 14:18:12

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

Re : formulaire, seul la 1er lettre d'une image s'insére dans la table .

Mais si je ne déclare pas ma variable il m'insére juste la 1er lettre. Franchement je vois pas ou ça bloque ...

Hors ligne

#7 29-10-2009 16:48:49

Maskime
Membre
Lieu : Paris 15ème
Inscription : 11-05-2009
Messages : 134
Site Web

Re : formulaire, seul la 1er lettre d'une image s'insére dans la table .

Est ce que tu pourrais re-poster ton code avec les petites modifications qu'on t'a déjà fais faire ?


La programmation est composée de 80% de réflexion pour 20% de syntaxe -> réfléchissez à votre problème par étapes

Recommande l'utilisation du pattern Singleton
Si jamais je poste un morceau de code pour vous aider, prenez bien compte que je n'ai pas forcément testé le code que je poste et qu'il est possible qu'il contienne des erreurs wink

Hors ligne

#8 05-11-2009 10:15:44

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

Re : formulaire, seul la 1er lettre d'une image s'insére dans la table .

A y est,  tout fonctionne lol
On m'a filé un énorme coup de main car je bloquais grave. Voila la source si ça peut servir à quelqu'un :

  $addedFiles = array();
  foreach ($_FILES as $name => $file)
  {
         if (is_uploaded_file($file['tmp_name']))
         {
     copy($file['tmp_name'], "../upload/".$file['name']);
             $addedFiles[$name] = mysql_real_escape_string($file['name']);

         }
      }
      $query = "
         INSERT INTO matable
             (date, promotion, ordrepromo, nouveautes, ordrenouveaute, rubrique,
             sousrubriques, marque, nomcuisine, encastrable, posable, nom, reference,
             description, note, avis, cond, type, garantie, label, consommation, dimension, colori,
             prix, promo ,promosolde, aFile, aFile2, aFile3, aFile4, aFile5, aFile6, aFile7)
         VALUES
             (NOW(), '$promotion', '$ordrepromo', '$nouveautes', '$ordrenouveaute', '$rubrique',
             '$sousrubriques', '$marque', '$nomcuisine', '$encastrable', '$posable', '$nom', '$reference',
             '$description','$note','$avis','$cond','$type','$garantie','$label','$consommation','$dimension','$colori','$prix','$promo','$promosolde'"
;
       
  $query .= isset($addedFiles['aFile']) ? ", '".$addedFiles['aFile']."'" : ", ''";
  $query .= isset($addedFiles['aFile2']) ? ", '".$addedFiles['aFile2']."'" : ", ''";
  $query .= isset($addedFiles['aFile3']) ? ", '".$addedFiles['aFile3']."'" : ", ''";
  $query .= isset($addedFiles['aFile4']) ? ", '".$addedFiles['aFile4']."'" : ", ''";
  $query .= isset($addedFiles['aFile5']) ? ", '".$addedFiles['aFile5']."'" : ", ''";
  $query .= isset($addedFiles['aFile6']) ? ", '".$addedFiles['aFile6']."'" : ", ''";
  $query .= isset($addedFiles['aFile7']) ? ", '".$addedFiles['aFile7']."'" : ", ''"; 
      $query .= " )";

Hors ligne

Pied de page des forums