2

だから私は友人のために構築しているウェブサイトのデータベースから画像を表示しようとしています。彼は、画像をアップロードして、フロント ページに表示できるようにしたいと考えています。

画像のアップロードがすべて機能しています。データベースに BLOB として保存します。

別のファイルに画像を表示する作業を開始しました。テスト Web サイトで動作するようになりました。画像は、彼が望んでいた方法で表示されました。しかし、その後、コードを実際の Web サイトに移動し、必要な状態にしましたが、機能しませんでした。

テスト Web サイトでもう一度試してみたところ、すべてうまくいきました。

一部の人にとっては、実際の Web サイトでは機能していませんが、私のテスト Web サイトでは問題なく機能しています。

実際の Web サイトは、テスト Web サイトよりも多くの情報を取得します。

テストWebサイトで使用したコードは次のとおりです。

image.php

$query = mysql_query("SELECT * FROM images LIMIT 1");
while($row = mysql_fetch_assoc($query)){

    $image_id = $row['id'];
    echo "<img src=showimage.php?id=".$image_id.">";
}

データベースから画像を取得して表示する方法を次に示します。

showimage.php

include 'inc/db.php';

$id = addslashes($_REQUEST['id']);

$image = mysql_query("SELECT image FROM sites WHERE id = '$id'");
$image = mysql_fetch_assoc($image);
$image = $image['image'];

header("Content-type: image/png");

echo $image;

テスト Web サイトでそのコードを使用すると問題なく動作します。問題はありません。

これが実際のWebサイトのコードです。

サイト.php

$select = mysql_query("SELECT * FROM sites");
            while($row = mysql_fetch_assoc($select)){

                $image_id = $row['id'];

                echo '
                    <tr class="bottom"><td>'.$row['host'].'</td>
                    <td>'.$row['currency'].''.$row['price'].' every '.$row['payment'].'</td>
                    <td>'.$row['domain'].'</td>
                    <td>'.$row['paid_currency'].''.$row['paid_domain'].'</td>
                    <td>'.$row['features'].'</td>
                    <td>
                        <span title="Edit '.$row['id'].'"><a href="edit.php?id='.$row['id'].'"><img src="images/edit.png" alt="Edit"></a></span>
                        <span title="Delete '.$row['id'].'"><a href="inc/delete.php?id='.$row['id'].'"><img src="images/delete.png" alt="Delete"></a></span>
                    </td>
                    <td><img src=showimage.php?id='.$image_id.'></td></tr>
                    ';
            }

データベースから画像を取得するために showimage.php ファイルを使用していますが、まったく機能していません。

4

1 に答える 1

1

データベースを使用することに設定されている場合は、img が DB にどのように配置されたかに応じて、 imagecreatefrompng()関数の使用を検討してください。

また、addslashes() の代わりに、実行して$id = (int)$_GET['id'];から if を確認してみてください$id > 0。最後に、BLOBとしてではなく、ファイルシステムに画像を保存することに+1。

[そして、mysql_query-is-deprecated-use-the-PDO-extension レクチャーをここに挿入]

于 2013-07-21T13:27:17.007 に答える