Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher une image d'une base de donnée

Sujet résolu
    15 mai 2011 à 1:56:40

    Bjr,
    Je lance un sos, j'essaie d'afficher une image de ma base de donnée, je l'upload bien dans un dossier sur le serveur mais le lien dans la base n'affiche pas le lien de l'image, mais plutot un "Array".
    Quelqu'un peut m'aider à ce niveau svp.
    • Partager sur Facebook
    • Partager sur Twitter
      15 mai 2011 à 8:24:25

      Ben c'est que le truc que tu insères dans la BDD, c'est pas une chaine de caractères, c'est un array, un tableau.
      • Partager sur Facebook
      • Partager sur Twitter
        15 mai 2011 à 15:36:19

        Merci Taguan,
        c'est justement à ce niveau que je coince un peu, comment faire pour inserer le lien de l'image dans ma base de donnée; le champ dans la BD doit être de quel type? VACHAR, LONGBLOD, ...

        Merci une fois de plus pour votre soutien.
        • Partager sur Facebook
        • Partager sur Twitter
          15 mai 2011 à 15:38:25

          Lorque tu l'uploade, tu utilise moce_uploaded_file pour le mettre où tu veux sur ton serveur. Donc pour mettre le lien tu reprend ce que tu as mis dans move_uploaded_file.

          Et la colonne devrait être un VARCHAR ( VARCHAR(100) est sans doute suffisant, mais ça dépend aussi du nom que tu donnes aux fichiers uploadés)
          • Partager sur Facebook
          • Partager sur Twitter
            15 mai 2011 à 15:55:39

            Haï, j'ai oublié de preciser au debut que je suis un novice en PHP, stp je te fais parvenir mais code et ainsi tu pourras mieux regarder et peux être detecter l'erreur, je parvien bien à l'uploader dans un dossier sur le serveur mais l'adresse ne rentre pas dans la BD:

            Voici les code du formulaire :

            <form method="post" action="ajout.php" enctype="multipart/form-data">
            <div class="news">
            <div class="titre_zone_texte">date :</div>
            <div class="zone_texte"><input type="text" name="pseudo" size="50" maxlength="50"></div>
            <div class="titre_zone_texte">Titre de l'info :</div>
            <div class="zone_texte"><input type="text" name="titre" size="114" maxlength="255"></div>
            <div class="titre_zone_texte">Introduction de l'info :</div>
            <div class="zone_texte"><textarea name="intro_news" rows="5" cols="87"></textarea></div>
            <div class="titre_zone_texte">Info :</div>
            <div class="zone_texte"><textarea name="news" rows="10" cols="87"></textarea></div>
            <input type="file" name="monfichier" /><br />
            <input type="hidden" name="MAX_FILE_SIZE" value="100000">
            </div>
            <div class="bouton"><input type="submit" value="Valider"></div>
            </form>

            Voici les code de l'ajout à la BD :
            <?php
            include ('config.php');

            if (isset($_POST['pseudo']) AND isset($_POST['titre']) AND isset($_POST['intro_news']) AND isset($_POST['news']) AND isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
            {
            $pseudo = htmlentities($_POST['pseudo']);
            $titre = htmlentities($_POST['titre']);
            $intro_news = mysql_real_escape_string(stripslashes($_POST['intro_news']));
            $news = mysql_real_escape_string(stripslashes($_POST['news']));
            $monfichier = htmlentities($_POST['monfichier']);
            $news = nl2br($news);

            // Testons si le fichier n'est pas trop gros
            if ($_FILES['monfichier']['size'] <= 1000000)
            {
            // Testons si l'extension est autorisée
            $monfichier = pathinfo($_FILES['monfichier']['name']);
            $extension_upload = $monfichier['extension'];
            $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
            if (in_array($extension_upload, $extensions_autorisees))
            {
            // On peut valider le fichier et le stocker définitivement
            move_uploaded_file($_FILES['monfichier']['tmp_name'], 'upload/' . basename($_FILES['monfichier']['name']));
            echo "L'envoi a bien été effectué !";
            }
            }

            if (empty($pseudo))
            {
            echo ("Saisissez la date svp");
            exit();
            }
            if (empty($titre))
            {
            echo ("Le titre ne peut être vide");
            exit();
            }
            if (empty($intro_news))
            {
            echo ("Saisissez une introduction pour l'information svp");
            exit();
            }
            if (empty($news))
            {
            echo ("Saisissez une actualité pour le site");
            exit();
            }
            mysql_query ("Insert INTO news VALUES ('', ' " .$pseudo. " ', ' " .$titre. " ', ' " .$intro_news. " ', ' " .$news. " ', ' " .$monfichier. " ')");
            }
            mysql_close();
            echo 'Merci d\'avoir ajouter une news - Redirection automatique dans 5 secondes';
            echo "<META HTTP-EQUIV='Refresh' CONTENT='5; URL=http://127.0.0.1/enam/news.php'>";
            ?>

            J'espere qu'ainsi tu pourras mieux voir mon probleme et merci de ta patience
            • Partager sur Facebook
            • Partager sur Twitter
              15 mai 2011 à 15:57:38

              Mets des balises de code.

              Et c'est pas $monfichier que tu doit insérer dan la BDD... C'est 'upload/' . basename($_FILES['monfichier']['name'])
              • Partager sur Facebook
              • Partager sur Twitter
                15 mai 2011 à 16:10:41

                Honnêtement suis perdu, c'est quoi les balises de code?
                stp peux tu corriger et me le renvoyer, (si c'est possible) voici aussi la structure de la table dans la BD :

                Structure de la table `news`
                --

                CREATE TABLE IF NOT EXISTS `news` (
                `id` int(11) NOT NULL auto_increment,
                `pseudo` varchar(50) NOT NULL,
                `titre` varchar(50) NOT NULL,
                `intro_news` varchar(255) NOT NULL,
                `news` longtext NOT NULL,
                `monfichier` varchar(60) NOT NULL,
                PRIMARY KEY (`id`)
                ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;


                Merci encore Taguan.
                • Partager sur Facebook
                • Partager sur Twitter
                  15 mai 2011 à 16:12:00

                  Citation : rolandf2002

                  stp peux tu corriger et me le renvoyer



                  Non

                  Les balises de code, ça veut dire que dans ton message, je veux que tu mettes < code type="php">
                  devant le début du code et
                  < /code> à la fin du code.

                  EDIT : c'est mieux mtn, mais faut enlever les espace après <
                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 mai 2011 à 16:22:49

                    ok, dans mon code de l'ajout dans la BD, je dois remplacer $monfichier par 'upload/' . basename($_FILES['monfichier']['name']);

                    au lieu de :

                    mysql_query ("Insert INTO news VALUES ('', ' " .$pseudo. " ', ' " .$titre. " ', ' " .$intro_news. " ', ' " .$news. " ', ' " .$monfichier. " ')");
                    


                    j'aurrais ceci :

                    mysql_query ("Insert INTO news VALUES ('', ' " .$pseudo. " ', ' " .$titre. " ', ' " .$intro_news. " ', ' " .$news. " ', ' " .'upload/' . basename($_FILES['monfichier']['name']). " ')");
                    


                    Je met quoi dans la table de ma base?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      15 mai 2011 à 16:24:10

                      Edite ton premier message avec le gros code, c'est illisible comme ça !

                      Et j'ai pas compris ta question "Je met quoi dans la table de ma base?"...
                      • Partager sur Facebook
                      • Partager sur Twitter
                        15 mai 2011 à 16:25:24

                        je veux dire dois je remplacer aussi monfichier par 'upload/' . basename($_FILES['monfichier']['name']) avec un vacher de 100 ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          15 mai 2011 à 16:27:41

                          Dernière fois que je répond tant que t'as pas mis ton code dans des balises...

                          Bien sûr que non... Cette question prouve que t'as pas tout compris (loin de là). Tu ferais bien de réfléchir, relire le cours, et ne pas brûler les étapes. Tu dois comprendre chaque ligne de code, chaque instructions...
                          • Partager sur Facebook
                          • Partager sur Twitter
                            15 mai 2011 à 16:29:15

                            Voici les code du formulaire :
                            <form method="post" action="ajout.php" enctype="multipart/form-data">
                            <div class="news">
                            <div class="titre_zone_texte">date :</div>
                            <div class="zone_texte"><input type="text" name="pseudo" size="50" maxlength="50"></div>
                            <div class="titre_zone_texte">Titre de l'info :</div>
                            <div class="zone_texte"><input type="text" name="titre" size="114" maxlength="255"></div>
                            <div class="titre_zone_texte">Introduction de l'info :</div>
                            <div class="zone_texte"><textarea name="intro_news" rows="5" cols="87"></textarea></div>
                            <div class="titre_zone_texte">Info :</div>
                            <div class="zone_texte"><textarea name="news" rows="10" cols="87"></textarea></div>
                            <input type="file" name="monfichier" /><br />
                            <input type="hidden" name="MAX_FILE_SIZE" value="100000">
                            </div>
                            <div class="bouton"><input type="submit" value="Valider"></div>
                            </form>
                            


                            Voici les code de l'ajout à la BD :
                            <?php
                            include ('config.php');
                            
                            if (isset($_POST['pseudo']) AND isset($_POST['titre']) AND isset($_POST['intro_news']) AND isset($_POST['news']) AND isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
                            {
                            $pseudo = htmlentities($_POST['pseudo']);
                            $titre = htmlentities($_POST['titre']);
                            $intro_news = mysql_real_escape_string(stripslashes($_POST['intro_news']));
                            $news = mysql_real_escape_string(stripslashes($_POST['news']));
                            $monfichier = htmlentities($_POST['monfichier']);
                            $news = nl2br($news);
                            
                            // Testons si le fichier n'est pas trop gros
                            if ($_FILES['monfichier']['size'] <= 1000000)
                            {
                            // Testons si l'extension est autorisée
                            $monfichier = pathinfo($_FILES['monfichier']['name']);
                            $extension_upload = $monfichier['extension'];
                            $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                            if (in_array($extension_upload, $extensions_autorisees))
                            {
                            // On peut valider le fichier et le stocker définitivement
                            move_uploaded_file($_FILES['monfichier']['tmp_name'], 'upload/' . basename($_FILES['monfichier']['name']));
                            echo "L'envoi a bien été effectué !";
                            }
                            }
                            
                            if (empty($pseudo))
                            {
                            echo ("Saisissez la date svp");
                            exit();
                            }
                            if (empty($titre))
                            {
                            echo ("Le titre ne peut être vide");
                            exit();
                            }
                            if (empty($intro_news))
                            {
                            echo ("Saisissez une introduction pour l'information svp");
                            exit();
                            }
                            if (empty($news))
                            {
                            echo ("Saisissez une actualité pour le site");
                            exit();
                            }
                            mysql_query ("Insert INTO news VALUES ('', ' " .$pseudo. " ', ' " .$titre. " ', ' " .$intro_news. " ', ' " .$news. " ', ' " .$monfichier. " ')");
                            }
                            mysql_close();
                            echo 'Merci d\'avoir ajouter une news - Redirection automatique dans 5 secondes';
                            echo "<META HTTP-EQUIV='Refresh' CONTENT='5; URL=http://127.0.0.1/enam/news.php'>";
                            ?>
                            
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Afficher une image d'une base de donnée

                            × 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