我似乎不能让我的图像显示正确。之前,我使用了下面的代码片段,它工作得很好。
catalog.php(工作正常):
<p class="image">
<a href="synopsis.php?id=<?php echo $row['id']; ?>">
<img src="getImage.php?id=<?php echo $row['id']; ?>" alt="" width="175" height="200" />
</a>
</p>
synopsis.php(根本不显示图像):
<?php
$id = $_GET['id'];
...?>
<p class="image">
<img border="0" class="floatleft" src="getImage.php?id=<?php echo $row['id']; ?>" width="250" height="400" />
<?php echo $row['synopsis']; ?>
</p>
getimage.php:
<?php
$id = $_GET['id'];
$link = mysql_connect("localhost", "root", "");
mysql_select_db("dvddb", $link);
$sql = "SELECT dvdimage_path FROM dvd WHERE id=$id";
$result = mysql_query($sql, $link);
$row = mysql_fetch_assoc($result);
mysql_close($link);
header("Content-type: image/jpeg");
echo file_get_contents($row['dvdimage_path']);
?>
知道为什么我不能显示这个图像吗?
编辑1:所以在调试之后,我得到了一个错误消息:
Undefined index: id in C:'xampp'htdocs'synopsis.php on line 106
所以我在PHP代码echo $row['id']之前添加了以下代码:
<p>getImage.php?id=<?php error_reporting(0); echo $row['id']; ?></p>
然而,我得到的段落只是getImage.php?id=
。
然后,我进入了synosis .php -> <img border="0" class="floatleft" src="getImage.php?id=<?php echo $row['id']; ?>
改成:
<img border="0" class="floatleft" src="getImage.php?id=2">
再一次,同样的问题发生了,我不能得到特定的图像。
我怀疑我的getimage.php文件有问题。然而,当我使用这个代码片段时,这个getimage.php文件在其他页面上工作得很好。
我的要求很简单:在catalog.php中,我使用while循环从dvd数据库填充图像和文本。然后,这些图像中的每个都有其特定的主ID。当我点击图片时,它们会转到链接:synopsis.php?id="primaryid"然后,使用这个"primaryid"我应该能够使用getimage.php?"primaryid"用于在summary .php页面上生成图像。
编辑2:实际上,我在某个地方犯了一个语法错误。所以这一行:
<img border="0" class="floatleft" src="getImage.php?id=2">
工作正常,这意味着错误出现在我不能正确返回'id'的地方。
编辑3:我已经包含了相关源代码的链接:
catalog.php
synopsis.php
getimage.php
sortmenu.css
style.css
XML格式的数据库
问自己的问题:
- 真的需要使用php脚本来模拟图像吗?如果没有,只使用图像路径。
- 在header()之前是否有任何输出;函数在getimage.php文件?甚至在前面加一个空格
- 图像实际上是JPEG吗?
- 是否有任何错误出现当你去getimage.php?浏览器中的id= id ?
在synopsis.php中,您正在从查询字符串中获取id,但随后试图使用数据库值。我不能看到你所有的代码,所以我张贴解决方案,以涵盖两种情况
src="getImage.php?id=<?php echo $id; ?>"
或
src="getImage.php?id=<?php echo $row[$id]; ?>"