Images et MySQL

ViPHP
ViPHP | 2291 Messages

27 nov. 2006, 14:52

Tu peux même éventuellement fichier toi-même l'index du tableau dans le formulaire : name="fichier[img1]", name="fichier[img2]", etc... et tu récupères ça de la même manière. Et pour chaque bloc dans ton formulaire tu utilises le même index pour chacun de ses éléments, comme ça, pas de mélanges.
Ce que j'ai noté plus tôt ;)
Bon alors j'ai essayé de modifier le script mais il envoie bien l'image dans le dossier, il enregistre bien le chemin, mais pas moyen de lui faire enregistré le nom de mon fichier ?(il m'indique Array)
echo $sql = "INSERT INTO images (chem_pho_1, pho_1) values ('".$finaldir."','".$nom."')";
$insert = mysql_query($sql) or die (mysql_error());

?>
<pre>
<?php
var_dump($_FILES);
?>
</pre>
<?php
  //=============================================================================
  //  TEST DU NOMBRE DE FICHIERS POSTES
  //=============================================================================
  $nbr=0;
  for($x=0;$x<$maxfiles;$x++)
    if(!empty($_FILES['userfile']['name'][$x])) $nbr++;
  if($nbr<=0) die("Aucun fichier spécifié !<br/>");

  //=============================================================================
  //  CREATION DE L'ARBORESCENCE POUR LE DOSSIER DESTINATION
  //=============================================================================
  if(!empty($finaldir)) {
     if(substr($finaldir,strlen($finaldir)-1,1)=='/') $finaldir.='/';
     $dir=explode('/',$finaldir);
     $finaldir='';
     for($x=0;$x<count($dir);$x++) {
        $finaldir.=$dir[$x].'/';
        if(!@is_dir($finaldir)) @mkdir($finaldir,0777);
     }
     if(!@is_dir($finaldir)) die("Le dossier $finaldir est invalide !<br/>");
  }

  //=============================================================================
  //  TELECHARGEMENT DES FICHIERS
  //=============================================================================


if ($_FILES['upload']) {
   $file_ary = reArrayFiles($_FILES['userfile']['name']);

   foreach ($file_ary as $file) {
       print 'File Name: ' . $file['name'];
       print 'File Type: ' . $file['type'];
       print 'File Size: ' . $file['size'];
   }
}


    for($x=1;$x<=$maxfiles;$x++) {
    $errorhttp=$_FILES['userfile']['error'][$x-1];
    $filenamehttp=$_FILES['userfile']['name'][$x-1];
    $typehttp=$_FILES['userfile']['type'][$x-1];
    $sizehttp=$_FILES['userfile']['size'][$x-1];
    $tmpfilehttp=$_FILES['userfile']['tmp_name'][$x-1];
    if (($errorhttp)and(!empty($filenamehttp))) {
      switch ($errorhttp){
        case 1: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
        case 2: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
        case 3: echo "Erreur : Transfert du fichier n°$x interrompu !<br/>";break;
        case 4: echo "Erreur : Le fichier n°$x est vide !<br/>";break;
      }
    } else {
      if((!empty($filenamehttp))and($sizehttp>0)) {
        if($sizehttp<=$maxsize){
          if(@is_uploaded_file($tmpfilehttp)) {
             if(@eregi('.php',$filenamehttp)) $filenamehttp.='.txt';
             if(@eregi('.exe',$filenamehttp)) $filenamehttp.='.txt';
             if(@eregi('.swf',$filenamehttp)) $filenamehttp.='.txt';
             if(@eregi('.zip',$filenamehttp)) $filenamehttp.='.txt';
             if(filesize($tmpfilehttp)==$sizehttp) {
               if(@move_uploaded_file($tmpfilehttp,$finaldir.$filenamehttp)) {
                  @chmod($filenamehttp,0777);
                  echo "Fichier n°$x uploadé : ".basename($filenamehttp).
                       " (".round(max($sizehttp,1024)/1024)." ko)<br/>";
               } else echo "Erreur de téléchargement du fichier n°$x !<br/>";
             } else echo "Erreur de téléchargement du fichier n°$x !<br/>";
          } else echo "Erreur de téléchargement du fichier n°$x !<br/>";
        } else echo "Erreur : Le fichier n°$x est trop grand !<br/>";
      } // else echo "Le fichier n°$x est introuvable ou vide !<br/>";
    }
  }

  die ("Opération terminée.<br/>");
}

//===============================================================================
//  FORMULAIRE HTML
//===============================================================================
echo '<form method="post" enctype="multipart/form-data"'.
     ' onSubmit="document.getElementById(\'valider\').style.visibility=\'hidden\';">'.
     '<input type="hidden" name="MAX_FILE_SIZE" value="'.$maxsize.'"/>';
for($x=1;$x<=max($maxfiles,1);$x++)
  echo ' Fichier n°'.$x.' : <input type="file" name="userfile[]" size="20"/><br/>';
echo '<br/><input type="submit" name="valider" value="Envoyer..."/>'.
     '</form>';


//===============================================================================



?>
Pourquoi ?

D'avance merci
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 1776 Messages

27 nov. 2006, 15:19

Parce que c'est un array...
Traduction de array de l'anglais au francais ? (je te laisse chercher) Ou alors encore mieux, le recherche dans la doc php :roll:

ViPHP
ViPHP | 2291 Messages

27 nov. 2006, 15:30

Parce que c'est un array...
Traduction de array de l'anglais au francais ? (je te laisse chercher) Ou alors encore mieux, le recherche dans la doc php :roll:
J'ai cherché mais je ne trouve pas comment faire, je ne me casse pas la tête par plaisir.
Si je viens ici pour essayé d'avoir une solution c'est que je ne l'ai pas trouvé dans mes recherche.
Je n'espère pas des codes tout fait je cherche et quand j'arrive au bout et que je tourne en rond je viens ici en espérant avoir des piste ou réponse mais je dois bien reconnaître que je reçois milles remarques et pas de réponses si vous voulez supprimer mon compte comme cela vous ne perdrez plus votre temps à me faire des remarques sur mes code, sur comment aller chercher que array est un tableau, etc......
Maintenant si je vous énerve avec mes questions libres à vous de ne pas me répondre mais vous sentez pas obliger de me faire la moral à chacune de mes questions
D’avance merci
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 1776 Messages

27 nov. 2006, 15:43

J'ai cherché mais je ne trouve pas comment faire, je ne me casse pas la tête par plaisir.
Si je viens ici pour essayé d'avoir une solution c'est que je ne l'ai pas trouvé dans mes recherche.
Je n'espère pas des codes tout fait je cherche et quand j'arrive au bout et que je tourne en rond je viens ici en espérant avoir des piste ou réponse mais je dois bien reconnaître que je reçois milles remarques et pas de réponses si vous voulez supprimer mon compte comme cela vous ne perdrez plus votre temps à me faire des remarques sur mes code, sur comment aller chercher que array est un tableau, etc......
Maintenant si je vous énerve avec mes questions libres à vous de ne pas me répondre mais vous sentez pas obliger de me faire la moral à chacune de mes questions
D’avance merci
Réellement, rechercher "array php" dans google te ramène plus ou moins à cela => http://fr3.php.net/array. Jusqu'ici on a fait une recherche simple. Après, il suffit de faire appel à la lecture et de lire un peu le truc...
tu vois qu'on parle plusieurs fois de tableaux, et tu as même l'exemple
notice
<?php
$v = array();

$v['0'] = 's';
$v[0] = 'i';
echo $v['0'];
echo $v[0];

$v['.1'] = 's';
$v[.1] = 'i';
echo $v['.1'];
echo $v[.1];
Donc si tu avais fait un minimum de recherche sur l'erreur (qui en outre n'en est pas une), tu serai venu demander ce qu'était un tableau... :roll:

Ce ne sont pas des remarques qui sont faites, on veut pas non plus supprimer ton compte et si l'on te répond c'est qu'on le veut bien ! Ce serait par contre super d'essayer de commencer à te documenter toi même ou de faire une recherche avant de dire "j'ai une erreur".
Maintenant que je t'ai orienté vers ce que tu aurais pu trouver seul, je vais t'orienter vers une fonction plus complexe : à la place de faire ton echo $tavar; , fais un print_r($tavar);

et là reviens nous dire le résultat.
Le but ce que tu comprennes de toi même en testant et en fouinant. :wink:

ViPHP
ViPHP | 2291 Messages

27 nov. 2006, 16:10

J'ai cherché mais je ne trouve pas comment faire, je ne me casse pas la tête par plaisir.
Si je viens ici pour essayé d'avoir une solution c'est que je ne l'ai pas trouvé dans mes recherche.
Je n'espère pas des codes tout fait je cherche et quand j'arrive au bout et que je tourne en rond je viens ici en espérant avoir des piste ou réponse mais je dois bien reconnaître que je reçois milles remarques et pas de réponses si vous voulez supprimer mon compte comme cela vous ne perdrez plus votre temps à me faire des remarques sur mes code, sur comment aller chercher que array est un tableau, etc......
Maintenant si je vous énerve avec mes questions libres à vous de ne pas me répondre mais vous sentez pas obliger de me faire la moral à chacune de mes questions
D’avance merci
Réellement, rechercher "array php" dans google te ramène plus ou moins à cela => http://fr3.php.net/array. Jusqu'ici on a fait une recherche simple. Après, il suffit de faire appel à la lecture et de lire un peu le truc...
tu vois qu'on parle plusieurs fois de tableaux, et tu as même l'exemple
notice
<?php
$v = array();

$v['0'] = 's';
$v[0] = 'i';
echo $v['0'];
echo $v[0];

$v['.1'] = 's';
$v[.1] = 'i';
echo $v['.1'];
echo $v[.1];
Donc si tu avais fait un minimum de recherche sur l'erreur (qui en outre n'en est pas une), tu serai venu demander ce qu'était un tableau... :roll:

Ce ne sont pas des remarques qui sont faites, on veut pas non plus supprimer ton compte et si l'on te répond c'est qu'on le veut bien ! Ce serait par contre super d'essayer de commencer à te documenter toi même ou de faire une recherche avant de dire "j'ai une erreur".
Maintenant que je t'ai orienté vers ce que tu aurais pu trouver seul, je vais t'orienter vers une fonction plus complexe : à la place de faire ton echo $tavar; , fais un print_r($tavar);

et là reviens nous dire le résultat.
Le but ce que tu comprennes de toi même en testant et en fouinant. :wink:
Je dois être trop con je comprend pas sorry
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 1776 Messages

27 nov. 2006, 16:17

pas moyen de lui faire enregistré le nom de mon fichier ?(il m'indique Array)
Allez, on sort le menu Mc PHP maxi best of effet XL. Sans Bug dans le PHPburger, Oracle à la place de MySQL. En dessert, assistance gratuite, illimitée et prioritaire sur phpfrance. Je vais même te le premacher...
tu dis qu'il t'affiche array....c'est superbe. Pour pourvoir afficher du texte, il doit y avoir un echo ou assimilé qui est en charge de cela ?
Ba une fois que tu l'as trouvé dans ton code, )à la place de ce echo, tu marque print_r();

Difficile ? :roll:

ViPHP
ViPHP | 2291 Messages

27 nov. 2006, 16:24

pas moyen de lui faire enregistré le nom de mon fichier ?(il m'indique Array)
Allez, on sort le menu Mc PHP maxi best of effet XL. Sans Bug dans le PHPburger, Oracle à la place de MySQL. En dessert, assistance gratuite, illimitée et prioritaire sur phpfrance. Je vais même te le premacher...
tu dis qu'il t'affiche array....c'est superbe. Pour pourvoir afficher du texte, il doit y avoir un echo ou assimilé qui est en charge de cela ?
Ba une fois que tu l'as trouvé dans ton code, )à la place de ce echo, tu marque print_r();

Difficile ? :roll:
Nom mais je ne comprend pas le résultat simplement

Code : Tout sélectionner

Array ( [userfile] => Array ( [name] => Array ( [0] => Flashmx01.bmp [1] => [2] => [3] => [4] => ) [type] => Array ( [0] => image/bmp [1] => [2] => [3] => [4] => ) [tmp_name] => Array ( [0] => E:/wamp/tmp\php128.tmp [1] => [2] => [3] => [4] => ) [error] => Array ( [0] => 0 [1] => 4 [2] => 4 [3] => 4 [4] => 4 ) [size] => Array ( [0] => 1440054 [1] => 0 [2] => 0 [3] => 0 [4] => 0 ) ) )
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 1776 Messages

27 nov. 2006, 16:31

Nom mais je ne comprend pas le résultat simplement

Code : Tout sélectionner

array(1) { ["userfile"]=> array(5) { ["name"]=> array(5) { [0]=> string(13) "Flashmx01.bmp" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["type"]=> array(5) { [0]=> string(9) "image/bmp" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["tmp_name"]=> array(5) { [0]=> string(22) "E:/wamp/tmp\php113.tmp" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["error"]=> array(5) { [0]=> int(0) [1]=> int(4) [2]=> int(4) [3]=> int(4) [4]=> int(4) } ["size"]=> array(5) { [0]=> int(1440054) [1]=> int(0) [2]=> int(0) [3]=> int(0) [4]=> int(0) } } }
Si tu étais tout le temps aussi coopératif que dans ce message ca irait mieux :wink:
Je te présente maintenant un petit resumé trouvé sur phpdebutant:
Récupération d'un fichier.
Bien, maintenant voyons comment récupérer les informations concernant l'envoi de fichiers par une formulaire

Voici comment récupérer toutes les informations du fichier envoyé avec le tableau associatif $_FILES

$_FILES['variable']['name'] Le nom original du fichier qui provient de la machine de l'utilisateur
$_FILES['variable']['type'] Le type mime du fichier
$_FILES['variable']['size'] Le taille du fichier en bytes
$_FILES['variable']['tmp_name'] Le nom temporaire du fichier stocké sur le serveur
$_FILES['variable']['error'] le code erreur associé à l'upload (attention cette option à été ajoutée en PHP 4.2.0)
Commence-tu à voir une ressemblance ? Si ta variable actuelle est $tavar, $tavar correspond en ce moment à $_FILES['variable'] du tuto phpdebutant...donc là il ne reste plus que deux choses:
- savoir quelle donnée recupérer
- l'appliquer à ta variable existante

Note: réfléchis avant de poster un "je comprends pas"...

ViPHP
ViPHP | 2291 Messages

27 nov. 2006, 16:50

Nom mais je ne comprend pas le résultat simplement

Code : Tout sélectionner

array(1) { ["userfile"]=> array(5) { ["name"]=> array(5) { [0]=> string(13) "Flashmx01.bmp" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["type"]=> array(5) { [0]=> string(9) "image/bmp" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["tmp_name"]=> array(5) { [0]=> string(22) "E:/wamp/tmp\php113.tmp" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["error"]=> array(5) { [0]=> int(0) [1]=> int(4) [2]=> int(4) [3]=> int(4) [4]=> int(4) } ["size"]=> array(5) { [0]=> int(1440054) [1]=> int(0) [2]=> int(0) [3]=> int(0) [4]=> int(0) } } }
Si tu étais tout le temps aussi coopératif que dans ce message ca irait mieux :wink:
Je te présente maintenant un petit resumé trouvé sur phpdebutant:
Récupération d'un fichier.
Bien, maintenant voyons comment récupérer les informations concernant l'envoi de fichiers par une formulaire

Voici comment récupérer toutes les informations du fichier envoyé avec le tableau associatif $_FILES

$_FILES['variable']['name'] Le nom original du fichier qui provient de la machine de l'utilisateur
$_FILES['variable']['type'] Le type mime du fichier
$_FILES['variable']['size'] Le taille du fichier en bytes
$_FILES['variable']['tmp_name'] Le nom temporaire du fichier stocké sur le serveur
$_FILES['variable']['error'] le code erreur associé à l'upload (attention cette option à été ajoutée en PHP 4.2.0)
Commence-tu à voir une ressemblance ? Si ta variable actuelle est $tavar, $tavar correspond en ce moment à $_FILES['variable'] du tuto phpdebutant...donc là il ne reste plus que deux choses:
- savoir quelle donnée recupérer
- l'appliquer à ta variable existante

Note: réfléchis avant de poster un "je comprends pas"...
Bon alors ma variable actuelle est $filenamehttp mais quand j'indique cette variable il ne m'inscrit rien
voici ma requette
INSERT INTO images (chem_pho_1, pho_1) values ('E:/wamp/www/mabrique/clients/images/','')
alors que plus loin dans le srcipt j'ai ceci avec la même $variable -->$filenamehttp
Fichier n°1 uploadé : Flashmx01.bmp (1406 ko)
Opération terminée.
D'ou ma question pourquoi il la prend dans un cas et pas l'autre :cry:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 1776 Messages

27 nov. 2006, 16:56

"Bonjour, je souhaiterai une baguette"
"Desolé monsieur nous n'en avons plus"
"Ba mettez 3 kg de Cabillaud alors"
"??? :? :shock: ??? :roll: :?: "


**** J'abandonne ****
Tu sais, la base de tout c'est de répondre intelligemment en lisant les réponses : ça peut être utile sur un forum d'entraide...ainsi que de ne pas sauter du coq à l'âne !

ViPHP
ViPHP | 2291 Messages

27 nov. 2006, 17:42

"Bonjour, je souhaiterai une baguette"
"Desolé monsieur nous n'en avons plus"
"Ba mettez 3 kg de Cabillaud alors"
"??? :? :shock: ??? :roll: :?: "


**** J'abandonne ****
Tu sais, la base de tout c'est de répondre intelligemment en lisant les réponses : ça peut être utile sur un forum d'entraide...ainsi que de ne pas sauter du coq à l'âne !
Je suis Technicien en en electromecanique alors si toi comme débutant tu à un soucis avec par exemple une dynamo et que je t'aide en te donnant le manuel et le plan et te disant il suffit de lire tu va voir c'est pas difficile je te souhaite bonne chance.

Tout ça pour dire que pour toi c'est peut-être trés simple mais pour des novices comme moi tes explication ne sont peut--être pas aussi évidante que tu le pense
Ceci dit merci quand même .
Modifié en dernier par dunbar le 27 nov. 2006, 17:48, modifié 1 fois.
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 nov. 2006, 17:46

Je suis par avance désolé de ne pas faire avancer ton soucis mais je voudrais te faire part de quelque chose.

Ce qui a surement finit par lasser LHDN92, c'est que tu ne fait visiblement pas beaucoup d'effort a part prendre le code qu'on te donne, suivre les 4 demandes qu'on te donne et les tester chez toi.

Tu es un débutant, soit. Si tu veux progresser, il faut que tu te demandes pourquoi on te donne des infos et essayer de comprendre quel est notre but.

Il n'est pas interdit de ne pas comprendre ce qu'on demande mais c'est assez lassant quant la personne qu'on aide ne fait visiblement aucun effort pour comprendre et aide juste au débugage ...
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 2291 Messages

27 nov. 2006, 17:51

Je suis par avance désolé de ne pas faire avancer ton soucis mais je voudrais te faire part de quelque chose.

Ce qui a surement finit par lasser LHDN92, c'est que tu ne fait visiblement pas beaucoup d'effort a part prendre le code qu'on te donne, suivre les 4 demandes qu'on te donne et les tester chez toi.

Tu es un débutant, soit. Si tu veux progresser, il faut que tu te demandes pourquoi on te donne des infos et essayer de comprendre quel est notre but.

Il n'est pas interdit de ne pas comprendre ce qu'on demande mais c'est assez lassant quant la personne qu'on aide ne fait visiblement aucun effort pour comprendre et aide juste au débugage ...
C'est totalement INJUSTE je cherche depuis hier 08h00 j'ai dormie 3 Heures mais je ne comprend pas je tourne en rond.
J'essaye mais soit je suis trop con, soit trés fatigué, soit j'ai du mal à suivre simplement, mais croire que je ne fait pas d'effort est totalement faux.
Pour vous c'est trés simple mais essayé de comprendre que d'autres peuvent avoir du mal comprendre ce qui vous parrais facile.
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 1776 Messages

27 nov. 2006, 18:00

C'est totalement INJUSTE je cherche depuis hier 08h00 j'ai dormie 3 Heures mais je ne comprend pas je tourne en rond.
J'essaye mais soit je suis trop con, soit trés fatigué, soit j'ai du mal à suivre simplement, mais croire que je ne fait pas d'effort est totalement faux.
Pour vous c'est trés simple mais essayé de comprendre que d'autres peuvent avoir du mal comprendre ce qui vous parrais facile.
L'injustice c'est toi qui la créé. Tu suivrais nos indications ça n'arriverai pas ! Je te dis
Commence-tu à voir une ressemblance ? Si ta variable actuelle est $tavar, $tavar correspond en ce moment à $_FILES['variable'] du tuto phpdebutant...donc là il ne reste plus que deux choses:
- savoir quelle donnée recupérer
- l'appliquer à ta variable existante

Note: réfléchis avant de poster un "je comprends pas"...
et toi tu me répond que ta requpete SQL fonctionne pas. Tu trouves pas que tu es à l'ouest sur tes réponses ? :roll:
Tu tourner en rond, mais c'est pa à cause de nous : on te pousse à avancer !
essayé de comprendre que d'autres peuvent avoir du mal comprendre
Ca fait un peu plus de 1000 messages que je ne fais que ça, et tu es le premier qui est aussi...réfractaire ! Il serait temps de te remettre en question ? :roll:

ViPHP
ViPHP | 2291 Messages

27 nov. 2006, 18:14

et toi tu me répond que ta requpete SQL fonctionne pas. Tu trouves pas que tu es à l'ouest sur tes réponses ?
Tu tourner en rond, mais c'est pa à cause de nous : on te pousse à avancer !
J'ai simplement voulu savoir pourquoi ceci fonctionne :
echo "Fichier n°$x uploadé : ".basename($filenamehttp).
Dans le cas ici il reprend bien le nomù du fichier et pourquoi quand j'applique la même variable ici
echo $sql = "INSERT INTO images (chem_pho_1, pho_1) values ('".$finaldir."','".$filenamehttp."')";
Cela ne fonctionne pas ?
C'étais simplement ma question[/quote]
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.