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 :

Afficher un image [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Par défaut Afficher un image
    Bonjour a tous !

    J'ai inserer une image (PNG) dans ma base mySQL via PHPmyAdmin avec un type LongBlob mais je n'arrive pas a l'afficher dans ma page .
    J'ai voulu la passer dans la variable de session :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <? 
    	echo 'Avatar : ',$_SESSION['Avatar'],'<br />';
    	?>
    J'ai une suite de ligne enorme et imcomprehensible .
    Qqun aurait une solution a me proposer ?

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Il faut que tu renvoie l'image avec les bons headers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="showImage.php?id=1234" />
    showImage.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ... //requetes sql pour requpérer le blob dans la variable $avatar
    header('Content-type: image/png');
    echo $avatar;

    sinon tu peux passer par les flux data encodés en base64 dans le src de img mais je connais pas trop ce principe ni la syntaxe.[/code]

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Par défaut
    Merci pour cette réponse je test de suite

  4. #4
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Citation Envoyé par Mr N.
    sinon tu peux passer par les flux data encodés en base64 dans le src de img mais je connais pas trop ce principe ni la syntaxe.
    A y est, trouvé : http://www.ietf.org/rfc/rfc2397
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       <IMG
       SRC="data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywAAAAAMAAw
       AAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZtfzgFz
       ByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbtLiOSp
       a/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJl
       ZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uis
       F81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXyym7PH
       hhx4dbgYKAAA7"
       ALT="Larry">
    Donne :

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Par défaut
    la j'ai un resultat chelou :

    Warning: Cannot modify header information - headers already sent by (output started at /home/.sites/145/site201/web
    avec la premiere solution

  6. #6
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Tu pourrais nous afficher ton code ?
    Pour ta gouverne on ne doit rien renvoyer à l'utilisateur avant de faire appel à header. rien, pas un espace, pas un caractère, rien, nada.

  7. #7
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Par défaut
    Voila ce que j'ai ecrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    include("cnx.php");
     
    	$sql = "select Avatar from Membres where Nom='snoop'";
      	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
      	$data = mysql_fetch_assoc($req);
     
    	$avatar = $data['Avatar'];
     
    	header('Content-type: image/png');
    	echo "<div align=center><font color=#FF0000><strong> $avatar </strong></font></b></div><br />";

  8. #8
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Il n'y en a pas assez. Je sais, on est gourmand

    Affiches tu quelque chose dans cnx.php
    Dans tes fichiers as tu des caractères avant <?php ou après ?> ???

  9. #9
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Par défaut
    avant le code precedent j'affiche des truc effectivement en HTML

    Sinon le début du cnx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?
    $dbname = '';
    $hostname = '';
    $username = '';
    $password = '';
     
     
     
    $connection = mysql_connect("$hostname", "$username", "$password") or die(mysql_error());
     
    mysql_select_db("$dbname", $connection) or die(mysql_error());
    Il faut que je place le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-type: image/png');
    Tout en ht de ma page ?

  10. #10
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Ben il ne faut pas afficher ! pas de html rien ! Le simple espace avant <?php te fera perdre un temps fou

  11. #11
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Par défaut
    En fait j'ai une page qui commence par une balise html dans laquelle j'ai des bouts de php pour afficher dynamiquement mes données (genre les variables de sessions et ici une image)
    Il faudrait que je mettent ma requete dans une page php seule et que je fasse un echo de ma variable dans mon autre page ?

  12. #12
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Tu dois avoir un script dédié à l'affichage d'une image :

    showImage.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php //note qu'il ny a rien avant !
    //SELECT machin truc 
     
    header('Content-type: image/png');
    echo $image_data;
     
    //il ne faut pas de caractères non plus après la fin du script pour ne pas pourrir l'image
    ?>
    index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    <img src="showImage.php" />
    ...
    Ou alors tu passes par les data inline (cf post precedent)

  13. #13
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Par défaut
    Ca marche !!!!!!!!!

    Merci super sympa !!

    Mais en fait la personne se log et je met son nom dans la variable de session

    si je fais ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "select Avatar from Membres where Nom= 'snoop'";
    ca marche

    mais si je fais ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "select Avatar from Membres where Nom= $_SESSION['Nom']";
    ca marche pas avec des "" , '' ou rien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher des images sous directX
    Par cyberlewis dans le forum DirectX
    Réponses: 17
    Dernier message: 12/07/2004, 12h07
  2. Charger et afficher une image jpg avec les mfc
    Par glop - pas glop dans le forum MFC
    Réponses: 3
    Dernier message: 11/02/2004, 18h59
  3. Réponses: 2
    Dernier message: 04/02/2004, 22h32
  4. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 19h13
  5. [TP][MULTI-PROBLEME]Comment afficher des images pcx
    Par mikoeur dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 24/10/2002, 13h57

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