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

Langage PHP Discussion :

[PHP-JS] problème affichage image


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut [PHP-JS] problème affichage image
    Bonjour a tous.

    j'ai des images stockées sous cette forme dans ma base de donnée mysql:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    iVBORw0KGgoAAAANSUhEUgAAAKgAAACZCAYAAAC7bXG8AAAABGdBTUEAALGOfPtRkwAAACBjSFJ
    NAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAA8tklEQVR4Xu19B3dUR7Yu2G
    RJiCCSCAIEAgVAKIByAGUhIZCEyDkHgcgmmWx7bIMNxh6bmXkTHGbmvrkOc9+77641a9135733u
    /b7vuquVvXpOqdPt1og7GOvWi26T++uU+erXVX722H8uHHjBC34LxiBMTsCBKjvlpU1R8o2VEhH
    11bZve+Q7D98TPYePBq0YAxiMLDnwGHp6Ru
    Si je fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?
          str_bin = "iVBORw0KGgoAAAA [...] r/QO2s66zb8J8AAAAASUVORK5CYII=";
          str_type = "image/png";
          header ("Content-type: ".$img_type);
          echo base64_decode($str_bin);
    ?>
    Cela fonctionne mais le probleme,c'est vu que cette chaine binaire est dans la bdd, et dans un fichier de type xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <vCard xmlns="vcard-temp" prodid="-//HandGen//NONSGML vGen v1.0//EN" version="2.0">
    [...]
    <PHOTO>
    <TYPE>image/png</TYPE>
    <BINVAL>
    iVBORw0KGgoAAAANSUhEUgA [...] b8J8AAAAASUVORK5CYII=</BINVAL>
    </PHOTO>
    [...]
    </vCard>
    Je me suis dit, je vais utiliser mon code que j'utilise pour recuperer entre chaque balises, mais sa ne marche pas
    Voici le code d'affichage de l'image avec les recup entre les balises:
    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
    <?
    $user = @$_GET["user"];
    mysql_connect("HOST", "USER", "PASS");
    mysql_select_db("DB");
    $req = "SELECT * "."FROM jiveVCard WHERE username = '".$user."'";
    $ret = mysql_query ($req) or die (mysql_error ());
    $col = mysql_fetch_row ($ret);
    mysql_close();
    if (preg_match('#<TYPE>(.*)</TYPE>#', $col[1], $m)) {
        $img_type = $m[1];
        }
    if (preg_match('#<BINVAL>(.*)</BINVAL>#', $col[2], $m)) {
        $img_bin = $m[1];
        }
          header ("Content-type: ".$img_type);
          echo base64_decode($img_bin);
    ?>
    Lorsque j'accede a mon image via img.php?user=rhaamo par ex, sa m'afiche du texte, et ce texte c'est l'url que j'ai entré

    Si quelqun a une petite idée car la je seche un peut

    Merchi d'avance.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 131
    Points : 132
    Points
    132
    Par défaut
    Bonjour,
    tu pourrais remplacer header par echo pour voir le contenu des variables.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    salut.
    hum, apres 1semaine sans y toucher je re regarde mon code et hum, marche pas
    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
    <?
    $user = @$_GET["user"];
    mysql_connect("localhost", "user", "pass");
    mysql_select_db("bdd");
    $req = "SELECT * "."FROM jiveVCard WHERE username = '".$user."'";
    $ret = mysql_query ($req) or die (mysql_error ());
    $col = mysql_fetch_row ($ret);
    mysql_close();
    if (preg_match('#<TYPE>(.*)</TYPE>#', $col[1], $m)) {
        $img_type = $m[1];
        }
    if (preg_match('#<BINVAL>(.*)</BINVAL>#', $col[2], $m)) {
        $img_bin = $m[1];
        }
          echo $img_type."<br>";
          echo $img_bin;
    ?>
    img_type affiche bienletype d'image mais img_bin que dale, et je voie pas ou est l'erreur

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 131
    Points : 132
    Points
    132
    Par défaut
    $col[2] est la bonne colonne pour img_bin dans la table jiveVCard ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    en modifiant comme suit:
    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
    <?
    $user = @$_GET["user"];
    mysql_connect("localhost", "user", "pass");
    mysql_select_db("bdd");
    $req = mysql_query("SELECT * from jiveVCard WHERE username = '$user' ");
    while( $contenu = mysql_fetch_array ($req))
        {
        $donnees = $contenu['value'];
        }
    mysql_close();
    echo $donnees."<hr><br>";
    if (preg_match('#<TYPE>(.*)</TYPE>#', $donnees, $m)) {
        $img_type = $m[1];
        }
    if (preg_match('#<BINVAL>(.*)</BINVAL>#', $donnees, $m)) {
        $img_bin = $m[1];
        }
     
          echo $img_type."<br><hr>";
          echo $img_bin;
    ?>
    j'obients le resultat de donnees et de img_type, mais le resultat de donnees, n'est pas celui attendu.
    Dans labdd celui-ci est sous la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <vCard xmlns="vcard-temp" prodid="-//HandGen//NONSGML vGen v1.0//EN" version="2.0">
    <FN>Marc Lagrange</FN>
    <NICKNAME>marko</NICKNAME>
    <PHOTO>
    <TYPE>image/png</TYPE>
    alors que j'y obtiens sous la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Marc Lagrange marko  image/png  iVBORw0KGgoAAAANSUhEUgAAAKgAAACZCAYAAAC7bXG8AAAABGdBTUEAALGOfPtRkwAAACBjSFJ NAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAA8tklEQVR4Xu19B3dUR7Yu2G RJiCCSCAIEAgVAKIByAGUhIZCEyDkHgcgmmWx7bIMNxh6bmXkTHGbmvrkOc9+77641a9135733u /b7vuquVvXpOqdPt1og7GOvWi26T++uU+erXVX722H8uHHjBC34LxiBMTsCBKjvlpU1R8o2VEhH
    iVBORw0... etant le code binaire de l'image.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 131
    Points : 132
    Points
    132
    Par défaut
    que contient $img_bin ? rien ? une partie de binval ? autre chose ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    lors de l'echo de $img_bin rien n'est affiché
    rectification, les balises sont affiches mais visible que dans la source de la page,grrrr
    par contre $img_bin tjr pareil,rien

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 131
    Points : 132
    Points
    132
    Par défaut
    pour le contenu de $donnees, je pense que si tu affiches le code source de la page dans ton navigateur tu retrouveras le code xml.
    d'ailleurs, si tu fais ça, tu ne vois rien concernant $img_bin ?

    edit : j'avais pas vu que tu avais vérifié le source de la page ...
    edit2 : je suis pas spécialiste de preg_match, mais la syntaxe devrait pas être "/pattern/" plutot que "#pattern#" ?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    en pensant a un conflict entre les deux preg_match j'ai fait sa
    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
    <?
    $user = @$_GET["user"];
    mysql_connect("localhost", "user", "pass");
    mysql_select_db("bdd");
    $req = mysql_query("SELECT * from jiveVCard WHERE username = '$user' ");
    while( $contenu = mysql_fetch_array ($req))
        {
        $donnees = $contenu['value'];
        }
    mysql_close();
     
    if (preg_match('#<TYPE>(.*)</TYPE>#', $donnees, $m)) {
        $img_type = $m[1];
        }
    if (preg_match('#<BINVAL>(.*)</BINVAL>#', $donnees, $m2)) {
        $img_bin = $m2[1];
        }
          //echo $donnees."<hr><br>";
          echo $img_type."<br><hr>";
          echo $img_bin;
    ?>
    qui n'affiche que img_type + img_bin mais aucunes traces de img_bin meme dans la source.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 131
    Points : 132
    Points
    132
    Par défaut
    je suis pas spécialiste de preg_match, mais la syntaxe devrait pas être "/pattern/" plutot que "#pattern#" ?

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    heu,je viens de tester en mettans / au lieu de # et cette fois img_type ne s'affiche meme plus

Discussions similaires

  1. [MySQL] problème affichage image avec sql
    Par igaurillac dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 14/02/2007, 18h04
  2. [PHP-JS] Problème affichage avec structure if
    Par kitty2006 dans le forum Langage
    Réponses: 31
    Dernier message: 07/09/2006, 18h01
  3. [VB]Problème affichage image dans IE6
    Par flogreg dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/02/2006, 18h41
  4. Problème affichage image dans IE6
    Par flogreg dans le forum IE
    Réponses: 6
    Dernier message: 13/02/2006, 14h29
  5. problème affichage image
    Par thealpacino dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 30/05/2005, 13h56

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