0

私は初めてPHPをやっていて、これについて研究していますが、喜びではありません。基本的に、PHPMyAdminデータベースから画像を取得して、作成したWebページにアップロードしようとしています。すべての見出しとテキストは、画像とは別に意図したとおりに表示されています。

データベースから画像を取得しているコード

    <?php
        include 'config.php';
        include 'opendb.php';
        $getdestinationdetails = mysql_query("SELECT *
        FROM tbldestinations
        WHERE destinationid = $_GET[destinationid]");
        while($row = mysql_fetch_array($getdestinationdetails))
        {
        echo "<h1>Visit " . $row['destinationname'] . "</h1>".
        "<imgsrc = 'images" . $row['destinationimage'] . "' />"  .
        "<br />
        <br />" .
        $row['destionationdesc'] .
        "<br />
        <br />
        Our holidays include:
        <ul>
            <li>Luxury coach travel from Shipley Town Centre</li>
            <li>Bed and Breakfast at a top hotel</li>
            <li>Free tea and coffee on board your coach</li>
            <li>The services of an experienced courier</li>
            <li>Free complimentary glass of champagne upon arrival at your hotel</li>
        </ul>
        <center><h2>Don't delay, book today!</h2></center>";
        }
        include 'closedb.php';
?>

私はすべての実験を試みましたが、すべて無駄でした。ヒントや提案をいただければ幸いです。前もって感謝します

4

1 に答える 1

2

実際の画像がデータベースに保存されている場合は、次の2つのオプションがあります。

  1. データベースから画像をロードするように設計された別のスクリプトを作成します。このスクリプトでは、header('Content-Type: image/jpeg')(または表示する画像の種類を設定します。次に、コンテンツを出力します。このオプションは、データベース(http:/ /stackoverflow.com/questions/5525830/displaying-an-image-stored-in-a-mysql-blob)
  2. ブラウザの互換性のためにもう少し危険なのは、base64でエンコードして、画像タグに直接出力することです。(http://stackoverflow.com/questions/1207190/embedding-base64-images)

<img />どちらのオプションでも、メインページにタグを付ける必要があります。オプション1にはsrc、データベースで画像を検索するために必要な識別子を含む、スクリプトを指す属性が必要です(ただし、XSSには十分注意してください)。オプション2はそれを画像タグに直接出力するので、いくつかの点でも望ましいです

画像へのリンクだけの場合:

上記のコードは、次の変更を除いて、かなり正常に機能するはずです。

echo "<h1>Visit " . $row['destinationname'] . "</h1>".
     "<img src=\"images/" . $row['destinationimage'] . "\" />"  .
...

編集:

私がすることは、これが最も簡単なことです:あなたのphpファイルで、あなたの画像を(それがjpgであると仮定して)次のように出力します:

...
echo '<img src="data:image/jpeg;base64,' . base64_encode($row['destinationimage']) . '" />';
...

上記は、インターネット経由でダウンロードするのではなく、実際に画像を画像タグ自体に配置します。ここでのハングアップは、PHPmyAdminで画像が表示されているという事実だと思います。そこに画像が表示されている場合、PHPmyAdminから画像を取得する方法は実際にはありません。自分で試したことはありませんが、上で示したのと同じようなことをしていると思います。HTMLタグで画像を表示するだけです。

于 2013-01-03T02:57:28.113 に答える