Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de système d'image

Je ne trouve pas l'erreur

Sujet résolu
    19 février 2006 à 21:36:52

    Voilà, j'ai esseer de faire un système d'image qui upload mon image sur mon serveur, et qui la met sur ma BDD.

    Grace à la BDD, je peut me faire une galerie.

    Mais voilà, lorsque j'upload l'image, il m'affiche deux erreurs :(

    Voici le code :

    new_images.php

    <html>
       <head><title>Uploadez vos images!</title></head>
       <body>
       <form method="post" enctype="multipart/form-data" action="send_images.php">
          <input type="hidden" name="MAX_FILE_SIZE" value="512000">
              <input type="hidden" name="id_image" value="0">
          <input type="file" name="image">
          <input type="submit" value="Envoyer">
       </form>
    </body>
    </html>


    send_images.php

    <?php
    $poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets)
    $repertoire = 'image/'; // Repertoire d'upload

    if (isset($_FILES['image']))
    {
       
       // On vérifit le type du fichier
       if ($_FILES['image']['type'] != 'image/png' && $_FILES['image']['type'] != 'image/jpeg' && $_FILES['image']['type'] != 'image/jpg' && $_FILES['image']['type'] != 'image/gif')
       {
          $erreur = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .';
       }
       
       // On vérifit le poids de l'image
       elseif ($_FILES['image']['size'] > $poids_max)
       {
          $erreur = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.';
       }
       
       // On vérifit si le répertoire d'
    upload existe
       elseif (!file_exists($repertoire))
       {
          $erreur = 'Erreur, le dossier d\'upload n\'existe pas.';     
       }
       
       // Si il y a une erreur on l'affiche sinon on peut uploader
       if(isset($erreur))
       {
          echo '' . $erreur . '<br><a href="javascript:history.back(1)">Retour</a>';
       }
       else
       {
             
          // On définit l'extention du fichier puis on le nomme par le timestamp actuel
          if ($_FILES['image']['type'] == 'image/jpeg') { $extention = '.jpeg'; }
          if ($_FILES['image']['type'] == 'image/jpeg') { $extention = '.jpg'; }
          if ($_FILES['image']['type'] == 'image/png') { $extention = '.png'; }
          if ($_FILES['image']['type'] == 'image/gif') { $extention = '.gif'; }
          $nom_fichier = time().$extention;
                 
          // On upload le fichier sur le serveur.
          if (move_uploaded_file($_FILES['image']['tmp_name'], $repertoire.$nom_fichier))
          {
             $url = ''.$repertoire.''.$nom_fichier.'';
                      
          //connection à la BDD
          mysql_connect("localhost", "root", "");
          mysql_select_db("news");

              
            // La variable $images est vide, puisque c'est une nouvelle images
            $image = '';
            $id_image = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
              
              header("location: liste_images.php?image='. $url .'&amp;id_image='. $_GET[id_image] .'");
              
          }
          else
          {
             echo 'L\'image n\'a pas pu être uploadée sur le serveur.';
          }
         
       }
       
    }
    else
    {
    }
    ?>


    liste_images.php

    <html>

      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>Système d'images</title>
        <link rel="stylesheet" media="screen" type="text/css" title="design1" href="style.css" />
      </head>
           
      <body>
     
        <?php
          // On se connecte à la base de données
          mysql_connect("localhost", "root", "");
          mysql_select_db("news");

    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'
    on veut envoyer une image ?
    //-----------------------------------------------------

    if (isset($_GET['image']))
    {
        // On vérifie si c'est une modification  ou pas
        if ($_GET['id_image'] == 0)
        {
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
            mysql_query("INSERT INTO images VALUES('', '" . $_GET['image'] . "')");
        }
        else
        {
        }
    }


    //--------------------------------------------------------
    // Vérification 2 : est-ce qu'on veut supprimer une image ?
    //--------------------------------------------------------

    if (isset($_GET['supprimer_image'])) // Si on demande de supprimer une image
    {
        // Alors on supprime l'image correspondante
        mysql_query('DELETE FROM images WHERE id=' . $_GET['supprimer_image']);
    }
    ?>

      <table>
     
        <tr>
          <th>Supprimer</th>
          <th>Images</th>
             
        </tr>

    <?php
    $retour = mysql_query('SELECT * FROM images ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    {
    ?>

        <tr>
          <td><?php echo '<a href="liste_images.php?supprimer_image=' . $donnees['id'] . '">'; ?>
          Supprimer</a></td>
             
          <td>
    <img src="<?php echo stripslashes($donnees['image']); ?>" style="width: 75px; height: 70px;" />
          </td>
             
        </tr>

    <?php
    } mysql_close(); // Fin de la boucle qui liste les news
    ?>
      </table>

      <ul>
        <li><a href="send_images.php">Envoyer une image</a></li>
        <li><a href="index.php">Revenir au site</a></li>
      </ul>
     
      </body>

    </html>


    index.php

    <html>

      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>Système d'images</title>
        <link rel="stylesheet" media="screen" type="text/css" title="design1" href="style.css" />
      </head>
           
      <body>
     
        <?php
          // On se connecte à la base de données
          mysql_connect("localhost", "root", "");
          mysql_select_db("news");

    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'
    on veut envoyer une image ?
    //-----------------------------------------------------

    if (isset($_GET['image']))
    {
        // On vérifie si c'est une modification  ou pas
        if ($_GET['id_image'] == 0)
        {
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
            mysql_query("INSERT INTO images VALUES('', '" . $_GET['image'] . "')");
        }
        else
        {
        }
    }


    //--------------------------------------------------------
    // Vérification 2 : est-ce qu'on veut supprimer une image ?
    //--------------------------------------------------------

    if (isset($_GET['supprimer_image'])) // Si on demande de supprimer une image
    {
        // Alors on supprime l'image correspondante
        mysql_query('DELETE FROM images WHERE id=' . $_GET['supprimer_image']);
    }
    ?>

      <table>
     
        <tr>
          <th>Supprimer</th>
          <th>Images</th>
             
        </tr>

    <?php
    $retour = mysql_query('SELECT * FROM images ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    {
    ?>

        <tr>
          <td><?php echo '<a href="liste_images.php?supprimer_image=' . $donnees['id'] . '">'; ?>
          Supprimer</a></td>
             
          <td>
    <img src="<?php echo stripslashes($donnees['image']); ?>" style="width: 75px; height: 70px;" />
          </td>
             
        </tr>

    <?php
    } mysql_close(); // Fin de la boucle qui liste les news
    ?>
      </table>

      <ul>
        <li><a href="send_images.php">Envoyer une image</a></li>
        <li><a href="index.php">Revenir au site</a></li>
      </ul>
     
      </body>

    </html>


    archives.php

    <html>

      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>Système d'images</title>
        <link rel="stylesheet" media="screen" type="text/css" title="design1" href="style.css" />
      </head>
           
      <body>
     
        <?php
          // On se connecte à la base de données
          mysql_connect("localhost", "root", "");
          mysql_select_db("news");

    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'
    on veut envoyer une image ?
    //-----------------------------------------------------

    if (isset($_GET['image']))
    {
        // On vérifie si c'est une modification  ou pas
        if ($_GET['id_image'] == 0)
        {
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
            mysql_query("INSERT INTO images VALUES('', '" . $_GET['image'] . "')");
        }
        else
        {
        }
    }


    //--------------------------------------------------------
    // Vérification 2 : est-ce qu'on veut supprimer une image ?
    //--------------------------------------------------------

    if (isset($_GET['supprimer_image'])) // Si on demande de supprimer une image
    {
        // Alors on supprime l'image correspondante
        mysql_query('DELETE FROM images WHERE id=' . $_GET['supprimer_image']);
    }
    ?>

      <table>
     
        <tr>
          <th>Supprimer</th>
          <th>Images</th>
             
        </tr>

    <?php
    $retour = mysql_query('SELECT * FROM images ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    {
    ?>

        <tr>
          <td><?php echo '<a href="liste_images.php?supprimer_image=' . $donnees['id'] . '">'; ?>
          Supprimer</a></td>
             
          <td>
    <img src="<?php echo stripslashes($donnees['image']); ?>" style="width: 75px; height: 70px;" />
          </td>
             
        </tr>

    <?php
    } mysql_close(); // Fin de la boucle qui liste les news
    ?>
      </table>

      <ul>
        <li><a href="send_images.php">Envoyer une image</a></li>
        <li><a href="index.php">Revenir au site</a></li>
      </ul>
     
      </body>

    </html>
    • Partager sur Facebook
    • Partager sur Twitter
    Character Artist @ Framestore Montreal. http://felixcharacters.com
      19 février 2006 à 23:20:52

      Donne également les erreurs, car je doute que quelqu'un accepte de regarder ton code ligne par ligne sans avoir la moindre idée de l'erreur ainsi que de l'endroit où la trouver...
      • Partager sur Facebook
      • Partager sur Twitter
        20 février 2006 à 0:19:18

        Erreurs affiché lorsque j'upload :

        Notice: Undefined index: id_image in c:\documents and settings\utilisateur\mes documents\site\test\image\send_images.php on line 55

        Warning: Cannot modify header information - headers already sent by (output started at c:\documents and settings\utilisateur\mes documents\site\test\image\send_images.php:55) in c:\documents and settings\utilisateur\mes documents\site\test\image\send_images.php on line 55
        • Partager sur Facebook
        • Partager sur Twitter
        Character Artist @ Framestore Montreal. http://felixcharacters.com
          20 février 2006 à 10:41:02

          l'erreur vient donc de cette ligne :
          header("location: liste_images.php?image='. $url .'&amp;id_image='. $_GET[id_image] .'");


          premiere erreur, de syntaxe : c'est $_GET['id_image'] (avec les ' ')

          deuxieme erreur : $_GET['id_image'] n'est pas défini, je pense que c'est $id_image que tu voulais mettre ici.
          • Partager sur Facebook
          • Partager sur Twitter
            20 février 2006 à 10:48:41

            Le problème est que tu envois ton header alors que le header html a déjà été envoyé.

            Cette ligne :
            header("location: liste_images.php?image='. $url .'&amp;id_image='. $_GET[id_image] .'");

            Elle devrait être au début du code.

            Enfin je ne suis pas sur. En tout cas, le message d'erreur dit bien que le header a déjà été envoyé.

            Reporte toi au manuel php pour plus d'infos http://fr2.php.net/manual/fr/function.header.php
            • Partager sur Facebook
            • Partager sur Twitter
              20 février 2006 à 11:45:39

              Autre erreur: ta concaténation n'est pas bonne!!!
              • Partager sur Facebook
              • Partager sur Twitter
                20 février 2006 à 18:53:02

                je vait esseyer de corriger, si ça ne fonctionnne pas, je vait esseyer autre chose
                • Partager sur Facebook
                • Partager sur Twitter
                Character Artist @ Framestore Montreal. http://felixcharacters.com
                  21 février 2006 à 23:49:25

                  j'ai tout recodé, et ca fonctionne
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Character Artist @ Framestore Montreal. http://felixcharacters.com

                  Problème de système d'image

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown