Télécharger un nombre indéterminé d'image simultané

Résolu
gbammelet Messages postés 45 Date d'inscription mardi 28 janvier 2014 Statut Membre Dernière intervention 15 décembre 2015 - Modifié par gbammelet le 20/02/2014 à 16:46
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 20 févr. 2014 à 17:54
Bonjour,

je veux insérer les données d'un formulaire contenant des images dans une base:
il me renvoi des erreurs suivant :
Avis : Undefined index: id_making dans C: \ xampp_ \ htdocs \ pour \ uploader.php sur la ligne 35

Avis : Array à la conversion de chaîne dans C: \ xampp_ \ htdocs \ pour \ uploader.php sur la ligne 103

voilà le code
<?php

/*Declaration des variables du making off*/

$titre_making= $_POST['titre_making'];
$stitre_making= $_POST['stitre_making'];
$date_making=$_POST['jour']."/".$_POST['mois']."/".$_POST['annee'];
$photo_couv= $_FILES['photo_couv'];

if(isset($_FILES['photo_couv']) AND $_FILES['photo_couv']['error']==0){
//var_dump($_FILES['photo_couv'];
if ($_FILES['photo_couv']['size'] <= 5000000)
{
// Testons si l'extension est autorisée
$infosfichier =
pathinfo($_FILES['photo_couv']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif','png','swf');
if (in_array($extension_upload,
$extensions_autorisees))
{
move_uploaded_file($_FILES['photo_couv']['tmp_name'], 'img/' .
basename($_FILES['photo_couv']['name']));
echo "L'envoi a bien été effectué !";

}
}
}
/*Declaration des variables de la video*/

$titre= $_POST['title'];
$chemin= $_POST['chemin'];

/*Declaration des varibles de l'image*/
$id_making= $_POST['id_making'];
$title= $_POST['title'];
$cheminimg= $_FILES['file_up'];

/***   Script from:   [http://coursesweb.net/ajax/]   ***/

$updir = 'upload';  // Directory for uploads
$max_size = 6000;   // Sets maxim size allowed for the uploaded files, in kilobytes

// sets an array with the file types allowed
$allowtype = array('bmp', 'gif', 'htm', 'html', 'jpg', 'jpeg', 'mp3', 'pdf', 'png', 'rar', 'zip');

// if the folder for upload (defined in $updir) doesn't exist, tries to create it (with CHMOD 0777)
if (!is_dir($updir)) mkdir($updir, 0777);

/** Loading the files on server **/

$result = array();          // Array to store the results and errors

// if receive a valid file from server
if (isset ($_FILES['file_up'])) {
  // checks the files received for upload
  for($f=0; $f<count($_FILES['file_up']['name']); $f++) {
    $fup = $_FILES['file_up']['name'][$f];       // gets the name of the file

    // checks to not be an empty field (the name of the file to have more then 1 character)
    if(strlen($fup)>1) {
      // checks if the file has the extension type allowed
      /*$type = end(explode('.', strtolower($fup)));*/
        // checks if the file has the size allowed
        if ($_FILES['file_up']['size'][$f]<=$max_size*1000) {
          // If there are no errors in the copying process
          if ($_FILES['file_up']['error'][$f]==0) {
            // Sets the path and the name for the file to be uploaded
            $thefile = $updir . '/' . $fup;
            // If the file cannot be uploaded, it returns error message
            if (!move_uploaded_file ($_FILES['file_up']['tmp_name'][$f], $thefile)) {
              $result[$f] = ' The file could not be copied, try again';
            }
            else {
              // store the name of the uploaded file
              $result[$f] = '<b>'.$fup.'</b> - OK';
            }
          }
        }
        else { $result[$f] = 'The file <b>'. $fup. '</b> exceeds the maximum allowed size of <i>'. $max_size. 'KB</i>'; }
      }
    
  }

   // Return the result
  $result2 = implode('<br /> ', $result);
  echo '<h4>Files uploaded:</h4> '.$result2;
}
/*insertion des donnees dans la table making off*/
require('./connect/connect.php');
$sql= "insert into making_off(titre_making,stitre_making,photo_couv,date_making)values('$titre_making','$stitre_making','".$_FILES['photo_couv']['name']."','$date_making')";

/*insertion des donnees de la table video*/
require('./connect/connect.php');
$sql= "insert into video_off(id_making,titre,chemin)values('$id_making','$titre','$chemin')";
/*mysql_query($sql, $link) or die(mysql_error());*/
/*test de la requete sql*/
/*echo $sql ;*/
$resultat=mysql_query($sql);

/*insertion des donnees de la table image */
require('./connect/connect.php');
$sql= "insert into image_off(id_making,title,cheminimg)values('$id_making','$title','$cheminimg')";
/*mysql_query($sql, $link) or die(mysql_error());*/
/*test de la requete sql*/
/*echo $sql ;*/
$resultat=mysql_query($sql);
require('test2.php');


?>

5 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
20 févr. 2014 à 16:48
Bonjour,

Et quel est le souci ?

Les messages d'erreurs semblent assez "clairs"...

Undefined index: id_making dans C: \ xampp_ \ htdocs \ pour \ uploader.php sur la ligne 35

Qui correspond à ta ligne :
$id_making= $_POST['id_making'];
.

Il semble donc que dans ton formulaire tu n'as pas de champ 'id_making' ..

Tu peux éviter ce genre d'erreur en utilisant ISSET pour vérifier si ta variable POST existe avant de l'assigner à une variable..

$id_making= (isset($_POST['id_making']))?$_POST['id_making']:'error';




Ensuite, ton require('./connect/connect.php'); .. tu n'as besoin de ne le mettre qu'une seule fois... il ne sert à rien (et même au contraire..c'est génant) de le mettre plusieurs fois dans ta page.
Supprime toutes les lignes le contenant et met ton require une fois au début de ton code...


Commence déjà par ces modifications ensuite reviens nous montrer le code corrigé en nous indiquant les autres messages d'erreur que tu pourrais encore avoir ( par contre... ne cherche pas à les traduire.. copie les tels quels (en anglais).. )
0
gbammelet Messages postés 45 Date d'inscription mardi 28 janvier 2014 Statut Membre Dernière intervention 15 décembre 2015
20 févr. 2014 à 17:13
Après la correction l'erreur suivante surgit

Notice: Array to string conversion in C:\xampp_\htdocs\for\uploader.php on line 100
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
20 févr. 2014 à 17:23
Et qu'en est-il des : require('./connect/connect.php'); ?
Tu as fait ce que je t'ai demandé ?

Si oui.. reposte nous ton code modifié.
0
gbammelet Messages postés 45 Date d'inscription mardi 28 janvier 2014 Statut Membre Dernière intervention 15 décembre 2015
Modifié par jordane45 le 20/02/2014 à 17:34
<?php
require('./connect/connect.php');
/*Declaration des variables du making off*/

$titre_making= $_POST['titre_making'];
$stitre_making= $_POST['stitre_making'];
$date_making=$_POST['jour']."/".$_POST['mois']."/".$_POST['annee'];
$photo_couv= $_FILES['photo_couv'];

if(isset($_FILES['photo_couv']) AND $_FILES['photo_couv']['error']==0){
//var_dump($_FILES['photo_couv'];
if ($_FILES['photo_couv']['size'] <= 5000000)
{
// Testons si l'extension est autorisée
$infosfichier =
pathinfo($_FILES['photo_couv']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif','png','swf');
if (in_array($extension_upload,
$extensions_autorisees))
{
move_uploaded_file($_FILES['photo_couv']['tmp_name'], 'img/' .
basename($_FILES['photo_couv']['name']));
echo "L'envoi a bien été effectué !";

}
}
}
/*Declaration des variables de la video*/

$titre= $_POST['title'];
$chemin= $_POST['chemin'];

/*Declaration des varibles de l'image*/
$id_making= (isset($_POST['id_making']))?$_POST['id_making']:'error';
$title= $_POST['title'];
$cheminimg= $_FILES['file_up'];

/***   Script from:   [http://coursesweb.net/ajax/]   ***/

$updir = 'upload';  // Directory for uploads
$max_size = 6000;   // Sets maxim size allowed for the uploaded files, in kilobytes

// sets an array with the file types allowed
$allowtype = array('bmp', 'gif', 'htm', 'html', 'jpg', 'jpeg', 'mp3', 'pdf', 'png', 'rar', 'zip');

// if the folder for upload (defined in $updir) doesn't exist, tries to create it (with CHMOD 0777)
if (!is_dir($updir)) mkdir($updir, 0777);

/** Loading the files on server **/

$result = array();          // Array to store the results and errors

// if receive a valid file from server
if (isset ($_FILES['file_up'])) {
  // checks the files received for upload
  for($f=0; $f<count($_FILES['file_up']['name']); $f++) {
    $fup = $_FILES['file_up']['name'][$f];       // gets the name of the file

    // checks to not be an empty field (the name of the file to have more then 1 character)
    if(strlen($fup)>1) {
      // checks if the file has the extension type allowed
      /*$type = end(explode('.', strtolower($fup)));*/
        // checks if the file has the size allowed
        if ($_FILES['file_up']['size'][$f]<=$max_size*1000) {
          // If there are no errors in the copying process
          if ($_FILES['file_up']['error'][$f]==0) {
            // Sets the path and the name for the file to be uploaded
            $thefile = $updir . '/' . $fup;
            // If the file cannot be uploaded, it returns error message
            if (!move_uploaded_file ($_FILES['file_up']['tmp_name'][$f], $thefile)) {
              $result[$f] = ' The file could not be copied, try again';
            }
            else {
              // store the name of the uploaded file
              $result[$f] = '<b>'.$fup.'</b> - OK';
            }
          }
        }
        else { $result[$f] = 'The file <b>'. $fup. '</b> exceeds the maximum allowed size of <i>'. $max_size. 'KB</i>'; }
      }
    
  }

   // Return the result
  $result2 = implode('<br /> ', $result);
  echo '<h4>Files uploaded:</h4> '.$result2;
}
/*insertion des donnees dans la table making off*/

$sql= "insert into making_off(titre_making,stitre_making,photo_couv,date_making)values('$titre_making','$stitre_making','".$_FILES['photo_couv']['name']."','$date_making')";
/*insertion des donnees de la table video*/
$sql= "insert into video_off(id_making,titre,chemin)values('$id_making','$titre','$chemin')";
/*mysql_query($sql, $link) or die(mysql_error());*/
/*test de la requete sql*/
/*echo $sql ;*/
$resultat=mysql_query($sql);

/*insertion des donnees de la table image */
$sql= "insert into image_off(id_making,title,cheminimg)values('$id_making','$title','$cheminimg')";
/*mysql_query($sql, $link) or die(mysql_error());*/
/*test de la requete sql*/
/*echo $sql ;*/
$resultat=mysql_query($sql);
require('test2.php');


?>


Edit : Code mis ENTRE les balises de code....
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
20 févr. 2014 à 17:35
Et donc... le message d'erreur t'indique QUELLE ligne maintenant ?
0
gbammelet Messages postés 45 Date d'inscription mardi 28 janvier 2014 Statut Membre Dernière intervention 15 décembre 2015
20 févr. 2014 à 17:39
la ligne 100
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
20 févr. 2014 à 17:47
NB: Au cas où tu ne l'aurais pas remarqué ...
1 - Je repasse sur chacun de tes messages pour remettre les balises de code (ou plutot ton code ENTRE les balises de code. )
Merci de faire attention les prochaines fois.

2 - Je place des réponses EN DESSOUS de mes réponses... Evite de commenter toujours le même message.. utilises plutot le bouton REPONDRE .. c'est plus facile à lire par la suite.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
Modifié par jordane45 le 20/02/2014 à 17:53
Donc ton erreur est TOUJOURS LIGNE 100 malgré les modifications ??
C'est à dire sur cette ligne là ?
$sql= "insert into image_off (id_making,title,cheminimg) 
            values ('$id_making','$title','$cheminimg')";


Tu es sûr ? car il n'y a rien qui pourrait générer une erreur pareil à cet endroit....

EDIT : A moins que...
Peux tu ajouter, avant cette ligne, un print_r($cheminimg); et nous copier le résultat ici stp ?

EDIT2 :
$cheminimg= $_FILES['file_up'];

$cheminimg contient le contenu de $_FILES['file_up'] ... il s'agit donc d'un TABLEAU (un array) et non d'une valeur unique.... d'où l'erreur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gbammelet Messages postés 45 Date d'inscription mardi 28 janvier 2014 Statut Membre Dernière intervention 15 décembre 2015
20 févr. 2014 à 17:53
oui
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
20 févr. 2014 à 17:54
regarde ce que j'ai marqué ( j'ai édité mon message précédent)
0
Rejoignez-nous