Télécharger un nombre indéterminé d'image simultané [Résolu]

Signaler
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015
-
Messages postés
32272
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
-
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

Messages postés
32272
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
346
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).. )
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015

Après la correction l'erreur suivante surgit

Notice: Array to string conversion in C:\xampp_\htdocs\for\uploader.php on line 100
Messages postés
32272
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
346
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é.
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015

<?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....
Messages postés
32272
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
346
Et donc... le message d'erreur t'indique QUELLE ligne maintenant ?
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015

la ligne 100
Messages postés
32272
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
346
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.
Messages postés
32272
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
346
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.
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015

oui
Messages postés
32272
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
346
regarde ce que j'ai marqué ( j'ai édité mon message précédent)