有些人错了打印图片

时间:2013-10-30 16:59:12

标签: php mysql

我仍然是所有这一切的新手,似乎无法找到这个问题。这是每个人都看到的主页。

 <?php
    // Connects to your Database 
    mysql_connect("localhost", "....", "....") or die(mysql_error()); 
    mysql_select_db("....") or die(mysql_error());


    //print animals
    $result = @mysql_query("SELECT * FROM animals ORDER BY id ASC LIMIT 10;");
    while($row=@mysql_fetch_array($result)){
    ?>
    <center><font size=3><font color=#eeb58c><?phpecho $row["Animal Description"]; ?><center>
    <center><font size=1><font color=#eeb58c><?php echo $row["Animal Id"]; ?><center>
    <center><?php 
    $qry = "select ID from animals"; 
    $res = mysql_query($qry) or die(mysql_error()); 
    while($row = mysql_fetch_array($res)) { echo "<img src=inc/image.php?id='$row[0]'>"; }} 
    ?><center>
    <?php
    //close database connection
    @mysql_close();
    ?>

这是image.php页面

<?php
 // Connects to your Database 
mysql_connect("localhost", "test", "test") or die(mysql_error()); 
mysql_select_db("dogs") or die(mysql_error());


$result = mysql_query("SELECT Photo FROM animals WHERE ID= ".$_GET['id']);
if($result === FALSE) 
    die(mysql_error()); // TODO: better error handling
$row = mysql_fetch_array($result);
header("Content-type: image/jpeg", true);
echo $row['Photo'];

?>

这是我查看源代码时看到的内容

<center><font size=3><font color=#eeb58c><?phpecho $row["Animal Description"]; ?><center>
<center><font size=1><font color=#eeb58c>test<center>
<center><img src=inc/image.php?id='2'><img src=inc/image.php?id='3'><center><font size=3><font color=#eeb58c><?phpecho $row["Animal Description"]; ?><center>
<center><font size=1><font color=#eeb58c>test 2<center>
<center><img src=inc/image.php?id='2'><img src=inc/image.php?id='3'><center>

正如你在源代码中看到的那样,显示图像id 2和3我需要它做的是测试显示图像id 2和测试2 show id 3等等。任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

您没有发送2作为照片的ID,而是'2'(带引号)。这就是为什么你不会得到正确的图片。

以这种方式尝试:

echo "<img src=\"inc/image.php?id=$row[0]\">";

(正如其他人已在评论中指出的那样,您的代码很容易进行SQL注入。)