Se connecter / S'enregistrer
Votre question

Afficher une image stockée dans ma bas de donnée

Tags :
  • photo
  • Programmation
Dernière réponse : dans Programmation
1 Juin 2011 19:52:05

salut a tous !
je voudrais que les visiteurs de mon site puisseent enregeistrer leur photo dans la base de donnée et ensuite afficher ses photos .
mais je n'arrive pas.
alors je voudrais une aide svp .
merci de bien vouloir m'aider .


NB : rien ne s'affiche duand j'execute le code aperçu .on me met : Vous n avez pas sélectionné d image !

voici mon code :


------------------------------------------------------------------------------------------

image.php
-------------------------------------------------------------------------------------------
  1. <head>
  2. <title>Envoyer une image</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  4. <style type="text/css">
  5. label {
  6. display:block;
  7. width:150px;
  8. float:left;
  9. }
  10. </style>
  11. </head>
  12.  
  13. <body>
  14.  
  15. <?php
  16. if(isset($_POST['validation'])) {
  17.  
  18. //Indique si le fichier a été téléchargé
  19. if(!is_uploaded_file($_FILES['image']['tmp_name']))
  20. echo 'Un problème est survenu durant l opération. Veuillez réessayer !';
  21. else {
  22. //liste des extensions possibles
  23. $extensions = array('/png', '/gif', '/jpg', '/jpeg');
  24.  
  25. //récupère la chaîne à partir du dernier / pour connaître l'extension
  26. $extension = strrchr($_FILES['image']['type'], '/');
  27.  
  28. //vérifie si l'extension est dans notre tableau
  29. if(!in_array($extension, $extensions))
  30. echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
  31. else {
  32.  
  33. //on définit la taille maximale
  34. define('MAXSIZE', 300000);
  35. if($_FILES['image']['size'] > MAXSIZE)
  36. echo 'Votre image est supérieure à la taille maximale de '.MAXSIZE.' octets';
  37. else {
  38. //on se connecte (remplacer les paramètres de connexion)
  39. $connexion = mysql_connect("localhost", "root", "") or exit (mysql_error());
  40. $database = mysql_select_db("go&ga") or exit (mysql_error());
  41.  
  42. //récupération des infos saisies
  43. $nom = mysql_escape_string($_POST['nom']);
  44. $description = mysql_escape_string($_POST['description']);
  45.  
  46. //Lecture du fichier. On doit utiliser la fonction mysql_escape_string car les données binaires contiennent des caractères spéciaux.
  47. $image = mysql_escape_string(file_get_contents($_FILES['image']['tmp_name']));
  48.  
  49. //Il ne reste qu'à insérer tout ça dans notre table.
  50. mysql_query("INSERT INTO images(nom, description, img, extension) VALUES('".$nom."', '".$description."', '".$image."', '".$_FILES['image']['type']."')") or exit (mysql_error());
  51. mysql_close();
  52. echo '<h3>L insertion s\'est bien déroulée !</h3>';
  53. }
  54. }
  55. }
  56. }
  57. ?>
  58.  
  59. <h1>Envoyer une image</h1>
  60. <form enctype="multipart/form-data" action="" method="post">
  61. <p>
  62. <label for="nom">Nom : </label><input type="text" name="nom" id="nom" /><br />
  63. <label for="description">Description : </label><textarea name="description" id="description" rows="10" cols="50"></textarea><br />
  64. <label for="image">Image : </label><input type="file" name="image" id="image" /><br />
  65. <label for="validation">Valider : </label><input type="submit" name="validation" id="validation" value="Envoyer" />
  66. </p>
  67. </form>
  68. <form action="galerie.php" method="post">
  69. <p>
  70. <input type="submit" name="validation" value="image" />
  71. </p>
  72. </form>
  73.  
  74. </body>
  75. </html>



--------------------------------------------------------------------------------------
apercu.php

-------------------------------------------------------------------------------------------

  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3. <title>Document sans titre</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8. <?php
  9. //si nous avons une image
  10. if(!empty($_GET['id_img'])) {
  11.  
  12. //connexion à la base de données
  13. $connexion = mysql_connect("localhost", "root", "") or exit (mysql_error());
  14. $database = mysql_select_db("go&ga")or exit (mysql_error());
  15.  
  16. //on sécurise notre donnée
  17. $idImg = intval($_GET['id_img']);
  18.  
  19. //la requète qui récupère l'image à partir de l'identifiant
  20. $apercu = mysql_query("SELECT extension, img FROM images WHERE id_img = ".$idImg) or exit (mysql_error());
  21.  
  22. //si le résultat est différent de 1
  23. if(mysql_num_rows($apercu) != 1)
  24. echo 'L image n existe pas !';
  25. else {
  26. //on stocke les données dans un tableau
  27. $reponse = mysql_fetch_assoc($apercu);
  28. //on indique qu'on affiche une image
  29. header ("Content-type: ".$reponse['extension']);
  30. //on affiche l'image en elle même
  31. echo $reponse['img'];
  32. }
  33. mysql_close();
  34. } else
  35. echo 'Vous n avez pas sélectionné d image !';
  36. ?>
  37.  
  38.  
  39. </body>
  40.  
  41. </html>


-------------------------------------------------------------------------------------------------
galerie.php
--------------------------------------------------------------------------------------------------

  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3. <title>Document sans titre</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8. <?php
  9. //si nous avons une image
  10. if(!empty($_GET['id_img'])) {
  11.  
  12. //connexion à la base de données
  13. $connexion = mysql_connect("localhost", "root", "") or exit (mysql_error());
  14. $database = mysql_select_db("go&ga")or exit (mysql_error());
  15.  
  16. //on sécurise notre donnée
  17. $idImg = intval($_GET['id_img']);
  18.  
  19. //la requète qui récupère l'image à partir de l'identifiant
  20. $apercu = mysql_query("SELECT extension, img FROM images WHERE id_img = ".$idImg) or exit (mysql_error());
  21.  
  22. //si le résultat est différent de 1
  23. if(mysql_num_rows($apercu) != 1)
  24. echo 'L image n existe pas !';
  25. else {
  26. //on stocke les données dans un tableau
  27. $reponse = mysql_fetch_assoc($apercu);
  28. //on indique qu'on affiche une image
  29. header ("Content-type: ".$reponse['extension']);
  30. //on affiche l'image en elle même
  31. echo $reponse['img'];
  32. }
  33. mysql_close();
  34. } else
  35. echo 'Vous n avez pas sélectionné d image !';
  36. ?>
  37.  
  38.  
  39. </body>
  40.  
  41. </html>

Autres pages sur : afficher image stockee bas donnee

a c 232 L Programmation
a b w Photo
1 Juin 2011 22:15:08

Salut,

Ce n'est pas une bonne idée de stocker l'image directement dans la base de données, il vaut mieux la sauvegarder sur le disque et ne sauvegarder qu'un lien dans ta base de données.

Et ton problème vient du faire que tu mets du code HTML dans ton fichier apercu.php: vu que tu veux afficher l'image, et que tu changes le Content-type, il ne doit y avoir que les données de l'image dedans et rien d'autre
m
0
l
1 Juin 2011 22:30:39

salut merci pour ta disponibilité !
je suis nouveau en php .
vraiment je souhaite que tu me guide mieux .
jai enlevé les code html et j'ai mi : //header ("Content-type: ".$reponse['extension']);

et ca m'affiche ca :Vous n'avez pas sélectionné d'image !
m
0
l
Contenus similaires
1 Juin 2011 22:40:00

au fait je sais plus quoi faire la la ..
s'il te plait rectifie mes erreurs
m
0
l
a c 232 L Programmation
a b w Photo
1 Juin 2011 23:28:35

Pardon, si aucune image n'est sélectionné, c'est que tu n'as pas passé de paramètre id_img à ton URL
m
0
l
1 Juin 2011 23:34:47

je suis perdu completement .. pe tu faire ca pour moi svp ...
m
0
l
a c 232 L Programmation
a b w Photo
2 Juin 2011 01:27:32

tu appelles ta page comment ?
m
0
l
2 Juin 2011 11:06:04

j’exécute directement ma page aperçu.php .
on met met : Vous n'avez pas sélectionné d'image !
m
0
l
a c 232 L Programmation
a b w Photo
2 Juin 2011 11:15:20

Bah oui, ta page attend un id d'image à afficher... si tu lui en passes pas, ça ne fonctionne pas
m
0
l
2 Juin 2011 11:21:18

tu me conseil de faire quoi pour que ca s'affiche .
svp peut tu ecrire le code d'affichage pour moi
m
0
l
a c 232 L Programmation
a b w Photo
2 Juin 2011 11:24:59

Je ne suis pas sûr que tu aies besoin d'avoir un code spécifique... il te suffit juste de passer le paramètre id_img avec l'ID d'une de tes images pour que ça fonctionne.
J'en ai aucune idée des IDs de tes images moi...
Essaie apercu.php?id_img=1
m
0
l
2 Juin 2011 11:32:47

1. ou est ce que je peux voir les IDs de mes images .
2. ou est ce que je met : apercu.php?id_img=1 ( a quel niveau du code ou bien c'est dans le navigateur )
m
0
l
2 Juin 2011 11:34:05

dans ma base de donnée au niveau de la table image les id_img sont : 1;2;3;4;5 ( j'ai inserré 5 images)
m
0
l
a c 145 L Programmation
2 Juin 2011 11:35:16

C'est dans ton url que tu dois ajouter le ?id_img=1
m
0
l
2 Juin 2011 11:38:52

escuse moi je sais que mes questions sont sans doute agassante :
mais ou se trouve mon URL a kel niveai du code . .
svp indik moi bien
m
0
l
2 Juin 2011 11:39:42

regarde mon code en haut et situe moi car je voi pas
m
0
l
a c 145 L Programmation
2 Juin 2011 12:24:38

... *PAN*

OmaR, je te le rends
m
0
l
2 Juin 2011 12:29:36

quoi je comprend rien la la
m
0
l
2 Juin 2011 13:01:49

aider moi svp
m
0
l
a c 145 L Programmation
2 Juin 2011 14:11:50

Je fais un dernier petit effort...
Pour voir ta page, dans ta barre d'adresse, tu tapes "http://localhost/apercu.php", non ?
Et bien tu essayes de mettre à la place: "http://localhost/apercu.php?id_img=1"
m
0
l
2 Juin 2011 18:31:33

j'ai fait ce que tu as di mais on m'affiche toujours :Vous n'avez pas sélectionné d'image !
de plus il y a une autre petite fenetre qui apparait et la on me di : vous avez choisi d'ouvrir aperçu.php qui est un fichier de type : PHP Script à partir de : http://localhost.com
et juste en bas on met :
ouvrir avec :


quand j'execute tout ca rien ne s'affiche
m
0
l
Anonyme
3 Juin 2011 10:41:23

Bon je vais essayer de vous le reprendre^^
(On dirait que Omar ta abandonner avec lui xD)

Déjà la question c'est plutôt a tu coder toi même tout sa ou ne serait ce pas la l'objet d'un copier coller?

Soit franc, je vais pas te manger. Mais déjà de la je verrais si c'est la peine que je t'explique ou plutôt que je te passe mon adresse pour que je bosse vite fait sur ton problème et te fasse ton site durant mes pause.
m
0
l
3 Juin 2011 21:10:35

salut j'ai vu le code sur le net j'essayé d'adapter a pour moi . donc c'est du copier collé .
je suis débutant en php . merci de bien vouloir m'aider.
m
0
l
Anonyme
3 Juin 2011 22:53:51

Bon je te contacte via MP pour qu'on est un meilleur lieu de discutions^^
a bientot
m
0
l
3 Juin 2011 22:58:52

escuse moi mais tu me contact via MP .
MP c koi ???
m
0
l
Anonyme
3 Juin 2011 23:14:19

MP c koi ???... *PAN*

Message Perso

Ou en anglais:
Private Message (PM)

Ps: Big dedicace a notre ami Omar^^
m
0
l
3 Juin 2011 23:16:40

ok meri pour l'eclairage .
j'attend ton aide .
et merci pour ta disponibilté
m
0
l
3 Juin 2011 23:40:02

dit moi si le code que j'ai essayé d'adapter a mon cas est juste ou non .
si oui peut tu m'aider a afficher les phots de la bas de donnée
m
0
l
Anonyme
3 Juin 2011 23:44:28

Voila, rendez vous fixer pour dimanche.
m
0
l
3 Juin 2011 23:45:53

ok
m
0
l
5 Juin 2011 14:34:07

On est dimanche ... *PAN*
m
0
l
5 Juin 2011 17:09:31

je suis la
m
0
l
5 Juin 2011 18:38:50

tu es la ????
m
0
l
5 Juin 2011 19:41:37

salut s'il vous plait je veux de l'aide
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS