0

loadimage.php ファイルの 1 つのクエリに 2 つの select ステートメントがあり、イベント用の画像とニュース用の画像の 2 つの異なる手順で表示します。私のコードは次のようになります

loadimage.php

<?php
mysql_connect("localhost","root");
mysql_select_db("pcnl");
$q="select * from tbl_event where event_ID = ".$_GET['id'];
$rec=mysql_fetch_array(mysql_query($q));
$image=$rec['event_img'];
header('Content-Length: '.strlen($image));
header("Content-type: image/".$rec['event_imgExt']);
echo $image;

$sqlmain="select * from tbl_news where news_ID = ".$_GET['mainid'];
$mainimg=mysql_fetch_array(mysql_query($sqlmain));
$mainimage=$mainimg['news_img'];
header('Content-Length: '.strlen($mainimage));
header("Content-type: image/".$mainimg['news_ext']);
echo $mainimage;
?>

イベント.php

<img src="loadimage.php?id=<?php echo $events[id];?>" width="700px" height="350px">

ニュース.php

<img src="loadimage.php?mainid=<?php echo $main['news_ID'];?>" width="300px" height="350px">
4

1 に答える 1

0

あなたは何の質問もせずに、何が起こると予想しているのか、何が起こったのかを述べ、これを実行したときにログに記録されるべきだったエラーについて教えてくれました。

1 つの HTTP 要求に応答して複数のリソースを返すことはできません。(これは厳密には正しくありませんが、算術の基礎をまだ習得しているときにひも理論について話しているようなものです)。

ところで、現在のスクリプトは SQL インジェクションに対して脆弱です。

これを試して:

<?php
mysql_connect("localhost","root");
mysql_select_db("pcnl");
$t='event'==$_GET['itype'] ? 'tbl_event' : 'tbl_news';

$q="select * from $t where event_ID = ".(integer)$_GET['id'];
if ($rec=mysql_fetch_array(mysql_query($q))) {
   $image=$rec['event_img'];
   header('Content-Length: '.strlen($image));
   header("Content-type: image/".$rec['event_imgExt']);
   echo $image;
} else {
   header('HTTP/1.0 404 Not Found', 404);
}

と...

<img src="loadimage.php?itype=event&id=<?php echo $events['id'];?>"...

<img src="loadimage.php?itype=main&id=<?php echo $main['news_ID'];?>"...

または、データを保持する単一のテーブルを用意することをお勧めします。

于 2013-09-05T15:57:15.973 に答える