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

gbammelet 45 Messages postés mardi 28 janvier 2014Date d'inscription 15 décembre 2015 Dernière intervention - 20 févr. 2014 à 16:35 - Dernière réponse : jordane45 20553 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 avril 2018 Dernière intervention
- 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');


?>
Afficher la suite 

10 réponses

Répondre au sujet
jordane45 20553 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 avril 2018 Dernière intervention - 20 févr. 2014 à 16:48
0
Utile
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).. )
Commenter la réponse de jordane45
gbammelet 45 Messages postés mardi 28 janvier 2014Date d'inscription 15 décembre 2015 Dernière intervention - 20 févr. 2014 à 17:13
0
Utile
1
Après la correction l'erreur suivante surgit

Notice: Array to string conversion in C:\xampp_\htdocs\for\uploader.php on line 100
jordane45 20553 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 avril 2018 Dernière intervention - 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é.
Commenter la réponse de gbammelet
gbammelet 45 Messages postés mardi 28 janvier 2014Date d'inscription 15 décembre 2015 Dernière intervention - Modifié par jordane45 le 20/02/2014 à 17:34
0
Utile
1
<?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....
jordane45 20553 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 avril 2018 Dernière intervention - 20 févr. 2014 à 17:35
Et donc... le message d'erreur t'indique QUELLE ligne maintenant ?
Commenter la réponse de gbammelet
gbammelet 45 Messages postés mardi 28 janvier 2014Date d'inscription 15 décembre 2015 Dernière intervention - 20 févr. 2014 à 17:39
0
Utile
2
la ligne 100
jordane45 20553 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 avril 2018 Dernière intervention - 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.
jordane45 20553 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 avril 2018 Dernière intervention - 20 févr. 2014 à 17:49
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.
Commenter la réponse de gbammelet
gbammelet 45 Messages postés mardi 28 janvier 2014Date d'inscription 15 décembre 2015 Dernière intervention - 20 févr. 2014 à 17:53
0
Utile
1
oui
jordane45 20553 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 avril 2018 Dernière intervention - 20 févr. 2014 à 17:54
regarde ce que j'ai marqué ( j'ai édité mon message précédent)
Commenter la réponse de gbammelet

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.