IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Images stockées en base selon tutoriel de BiD0uille [Fait]


Sujet :

PHP & Base de données

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 64
    Points : 40
    Points
    40
    Par défaut Images stockées en base selon tutoriel de BiD0uille
    Salut BiD0uille,
    j'ai suivi ton cours sur le stockage d'une image dans une BDD MySQL à la lettre. J'obtiens bien les liens mais une fois que je clique dessus j'obtiens une icône d'image vide. Visiblement il ne la trouve pas.
    En regardant ma base de données, tout semble correcte, l'image et tous les champs sont OK.
    J'ai relu le script plusieurs fois pour voir si je n'avais commis aucune erreur en comparant avec le tiens et rien de rien
    Je bloque complètement depuis 1 semaine et j'ai absolument un besoin urgent d'avancé la dessus qui n'est qu'une partie de mon développement.
    Peux tu stp m'aider ? Qu'est ce qui pourrait bien bloquer ?
    Merci d'avance

  2. #2
    Membre averti Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Points : 305
    Points
    305
    Par défaut
    C'est une image uploadé par formulaire ?

    Si oui est-ce que l'image est bien présente sur ton ftp ?

    Vérifie aussi que tu as bien "../" avant l'url de ton image

    Sinon balance nous l'url du cours
    " Can't take your slogans no more, no more sweet talk from the hypocrits " by Robert Nesta Marley

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    Voilà l'URL du cours :

    http://beaussier.developpez.com/arti...hp/mysql/blob/

    Il s'agit visiblement d'un problème avec la page apercu.php
    ou en lien avec la page liste.PHP mais ma liste apparait correctement, c'est ca qui est bizarre.

    (entre les pages 18 et 22)

    Merci d'avance.

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Dans quel cas te trouves tu?
    Mauvais id d'image, Id d'image inconnu ou alors le troisième mais ton image ne s'affiche quand meme pas? Le plus probable est un problème de lien mais ca reste à vérifier, peux-tu nous en dire plus?

    EDIT: Quand tu as la petite croix, ca veut dire qu'il ne trouve pas l'image, si tu fais "clic-droit" sur l'image puis "copier l'adresse de l'image" est ce que le chemin est bon? ne manque-t-il pas un dossier ou des .. ou quelquechose de ce genre?

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    Voici l'url que j'obtiens en faisant un clic droit sur l'image contenant une croix rouge :

    http://www.monsite.com/blob/apercu.php?id=17

    id change bien a chaque image donc le lien fait bien son travail visiblement !

  6. #6
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    La partie qui affiche les liens fonctionne correctement? (dans le tutoriel c'est le code de liste.php page 19) parce que j'ai l'impression (vu les petites croix rouges) que tu fais plutot qqch de ce style :
    <img src="http://www.monsite.com/blob/apercu.php?id=17" />

    Essaies de montrer sinon la partie qui affiche les liens et le code qui affiche les images.

  7. #7
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    Pour plus de clareté voici l'url :

    http://www.cdr-stagiaires.be/blob/

    tu peux essayer de placer une image ...
    Merci de ton aide

  8. #8
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Hum, tu peux montrer le script qui affiche l'image?

  9. #9
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    Le fichier liste.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <html>
    <head><title>Stock d'images</title></head>
    <body>
    <?PHP
    		include ("connexion.php");
    		$req = "SELECT img_nom, img_id ".
    				"FROM images ORDER BY img_nom";
     
    		$ret = mysql_query ($req) or die (mysql_error ());
    		while ( $col = mysql_fetch_row ($ret) )
    		{
    			echo "<a href=\"apercu.php?id=".$col[1]."\">".$col[0]."</a><br />";
    		}
    ?>
    </body>
    </html>
    -------------------------------------------------------------

    Le fichier apercu.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <?PHP
    if ( isset($_GET['id']) )
    {
    		$id = intval ($_GET['id']);
     
    		include ("connexion.php");
     
    		$req = "SELECT img_id, img_type, img_blob ".
    				"FROM images WHERE img_id = ".$id;
     
    		$ret = mysql_query ($req) or die (mysql_error ());
    		$col = mysql_fetch_row ($ret);
     
    		if ( !$col[0] )
    		{
    				echo "Id d'image inconnu";
    		}
    		else
    		{
    				header ("Content-type: ".$col[1]);
    				echo $col[2];  /* c'est ici que devrait apparaitre la photo.<br />
    								Il renvoi la valeur selon son id */
    		}
    }
    else
    {
    		echo "Mauvais id d'image";
    }
     
    ?>

  10. #10
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    Pour faire un autre essai, je viens de charger Mozilla.
    A la place de croix rouge en place des images (dans Explorer), il m'affiche l'url de cette façon :

    http://www.cdr-stagiaires.be/blob/apercu.php?id=18

  11. #11
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Ca me semble correct... tu n'as rien dans ton include(connexion.php) qui fasse des echo ou autre?
    Le second probleme peut venir de la manière dont tu stockes l'image dans la BDD mais j'avoue que je n'en sais pas plus que ca la, désolé.

    A l'insertion, tu récupères bien le type de l'image correctement dans ta base?

  12. #12
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    Ben non, m a connexion semble normale elle aussi et du côté de la base, j'ai suivi le cours donc, je vois pas !

  13. #13
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    je peux voir ta fonction transfert() ? Parce qu'au fur et a mesure du cours il semble que la partie qui récupère le type de l'image a disparu de la fonction transfert(), l'as tu bien conservée?

  14. #14
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    Un truc me semble cependant bizarre dans le dernier champ img_blob :

    img_id img_nom img_taille img_type img_desc img_blob
    31 02.jpg 15168 image/pjpeg [BLOB - 14,8 Ko]


    [BLOB - 14,8 Ko], c'est ca la valeur binaire de l'image et qui est censé l'affichée ??? Ca me sembme bizarre ?!?

  15. #15
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    fichier transfert;php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <?PHP
    function transfert ()
    {
    	$ret = false;
    	$img_blob = '';
    	$img_taille = 0;
    	$img_type = '';
    	$img_nom = '';
    	$taille_max = 250000;
     
    	$ret = is_uploaded_file ($_FILES['fic']['tmp_name']);
    	if ( !$ret )
    	{
    		echo "Problème de transfert";
    		return false;
    	}
    	else
    	{
    		//Le fichier a bien été reçu
    		$img_taille = $_FILES['fic']['size'];
    		if ( $img_taille > $taille_max )
    		{
    			echo "Trop gros !";
    			return false;
    		}
    		$img_type = $_FILES['fic']['type'];
    		$img_nom = $_FILES['fic']['name'];
     
    		include ("connexion.php");
     
    		$img_blob = file_get_contents ($_FILES['fic']['tmp_name']);
     
    		// Pour empêcher les caractères spéciaux dans le nom du fichier :
    		$req = "INSERT INTO images ("."img_nom, img_taille, img_type, img_blob ".") VALUES ("."'".$img_nom."', "."'".$img_taille."', "."'".$img_type."', "."'".addslashes ($img_blob)."') ";
    		// N'oublions pas d'échapper le contenu binaire
     
    		$ret = mysql_query ($req) or die (mysql_error ());
    		return true;
    	}
    }
    ?>

  16. #16
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Je ne vois pas du tout le problème là, ca me semble correct dans chaque fichier, je vais essayer de faire le test et je te dis ca.

  17. #17
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Bon, j'ai, rapidement, fait le test chez moi, en local donc sans passer par un fichier uploadé etc et ca marche je raffiche bien mon image correctement.

    Essaie dans ton fichier "apercu" de faire un "var_dump" de $col au lieu du header() pour vérifier qu'il récupère ce qu'il faut...

  18. #18
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    le code sera comment ds ce cas ?
    Comme ceci :

    var_dump ("Content-type: ".$col[1]); ????
    var_dump ($col); ????

    Je ne pense pas obtenir qlqs chose puisque je ne suis pas en local ...

  19. #19
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    Effectivement, rien du tout ! Juste un code comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    array(3) { [0]=> string(2) "17" [1]=> string(11) "image/pjpeg" [2]=> string(5397) "ÿØÿàJFIFddÿìSDuckyV>KONICA MINOLTA DIGITAL CAMERAÿîAdobedÀÿÛ„
       ÿÀdKÿĤ
      !1A"Q q‘2#aBRbr4Á$ð¡á‚’c5E&!1AQaq‘¡ð±ÁÑ"2Bá#ñrÿÚ ?‰ÙLS€ÅŸô+´Â†ÒŸn4+pWe3,KÃÔ-)*È|tñƤ¯Æ;•˜ŽU´dºÉy*t¶A
    +ZƒHHJ³‰R†DDä#ˆmåüz¥w÷š`â%È\ÔþR•º››š¥¶ÃR²ä%©ÇÖ–Ùy(Fà†ÓšÜR²Ìýørzuû|ïR–ÌÞk2S•ë¦i×}ÈÊ ªhtœk2`’Ú”¤þbQ=ßè÷ù‰1‹z*²ïY+±„©¶ÖÌÁ-‚d?{‚NpÆedANq;w4(BíͯN7è˜ô_tw¿ld*\ya‚ýz)] ˜F?ã³×Åc€@,ìAÀütÁ¥ ºåri,-,£7”FÔs†ƒÙ>!Ðy™¢ˆ¿T/}ÖîŠÅµ;3i–%—um·¼©OÍ”db–âRœŒ#Lᮬ1Ì»ü•O3>ûAbÊt6ÿ%×kÞÝQ”¨Š¬ÂzëiHƒ»ÜVä©Ä“’T>`bÃËpFŠ¨Ù›™v_ rta.ë-¦eÓÔ—~p-[Vje1I5ŽÂ«ò«”Üm
    ä™SL£w(‡y’¸’á4k´…I´´+®„!)qDf…nò©ÀYXµ_Pø#q²-ª|g«uO>(«Ù üÊ©Rˆ”¸KJZ›”B_að XuKki@ˆVÕ@ë ºÖÚ¸fOñ2#É⣚ūËH³p¾dËS !Ŧ\˜¥Å¢DBJõá?àÌážB±ãeó wCém*†À!¯øg†¾hð]~¶+à#¦¿ïû±Ž!e’ÝÉ–d¥—50¤"]´•*DÂ"18`ÅÒùHDvICæÚÍ]ɤێ ZZbÉy*ƒŽA!)Î @æGÇÃòÕs¾ñÝMÖž?´.çs²df¥Q6Ú&]˜s¤†³ò¡°Ÿ‡ÆÒì!©ð@U•È€:¢ Nx¨Ôë®·K”‘ëÎL¨Ÿ!+p¨”'4¤’
    ±G˹:4g)KˆÔ”g'sVife…³>—TmJU¶!e.@˜ä!œ04lµDÛ…uzÈ&W/p¤¥·\¦M]I覻E•u q¯lÁ&> G„40ÂÚ2¹™üJk‘ƒ*£\ŽòÝ-néûs‚*ŒÜ4p§&¦YT¼”w¡(uµ…D©²œœA„ sg‚«¯ê"b—ØeA–™ÞªQž–«4£&*Ì)†ì’â[Qبy’røgoíf%ÜÉߧÉY×3WU'Üu¥*+)Qh‚•ÿ0#˜Áõî®}»,_W.«_xþ!§ðéÓñLTýÜ]Ö»_Œ¦: Û3<ò$Ú1 ÀÅk9*pÛ®VUOû_¡…"
    7‘e2Ôjëž,ʘ€•æD¦ìÏ ¡P‹•Ël·‘kÛ4Z߬5j{j\»/†X#B² |HNfûaŏT~.5œ¹DhŠ¯úyv·\¾9<^µIgnP™SÊSÈR’äâÓµ¤À‘–*ÿ¹F5pŽòû•ïúçg&ádÆ‘ûÕ
    Wnö[xsçr4©š…y®0¢?ëê¯*¸z•6¾ Hg½@DCðˆxâ·^¥A/)iìV\ÎÞ'`”ôŒ~jž¹~™|¡ÜÏ(»É·t³”Þ>§É$R$æ6¡ÉN‚†’B•ÓHQ+11'U;ãQà=è|Œœ(Î"r‚”]Ëý$j70™&ÔÃÒ+v\8¶Ö²J¼éYÚ I0„1/x·|ˆ[äábäÇÓ?Eåß4q ßÛ·'LÙ7óF»*éAê:7¨ZØó¡iNŸ~:d2éå Ï»Ž°ïâwL.ÖçjŠ¨TyÔ®šô³
    n6°1*$˜xdqé3³+õ«%êJ$èC§NóÀaÿ a\\©¿ºš"ªœZ¹öB”å>i¹•CøùJ?-

  20. #20
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Je voulais vérifier que tu récupérais bien la source de l'image. Là franchement je ne vois pas du tout ce qui peut bien se passer comme erreur dans ton code, désolé...

Discussions similaires

  1. Réponses: 9
    Dernier message: 13/03/2010, 17h15
  2. Réponses: 4
    Dernier message: 25/11/2008, 19h32
  3. Image stockée en base dans un GridView
    Par tomlev dans le forum ASP.NET
    Réponses: 2
    Dernier message: 08/12/2007, 03h49
  4. [MySQL] Afficher une image stocké en base données
    Par Blo0d4x3 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 19/06/2006, 17h02
  5. [Forms] Afficher une image stockée en base
    Par oramine dans le forum Forms
    Réponses: 12
    Dernier message: 01/02/2005, 14h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo