我一直在为此工作了四个小时,但仍然没有任何线索,所以我来到这里寻求帮助。我正在学习PHP和mySQL,我学习的方式之一就是从开源项目中学习。今天我想了解一个开源项目,并且遇到一些问题。这里是链接到开源项目:https://github.com/markpytel/Printstagram基本上,它具有类似于以下,让我们把它profileinfo.php
(该文件的名称是相当欺骗,它是显示了不同的用户上传的图像页)php mySQL如何显示图像,IMG src上的问题
<?php
$sql="SELECT pid,poster, pdate FROM photo WHERE poster='$myusername' OR pid
in (select pid from tag where taggee='$myusername') OR pid in (select pid
from ingroup natural join shared where username='$myusername' and username
!= ownername) ORDER BY pdate desc";
$result=mysql_query($sql);
while($row = mysql_fetch_array($result))
{
echo "<hr>";
echo "Posted by: " . $row["poster"]. " Time: " . $row["pdate"]."<br>";
// pid is each photo's unique id in the database
$pidrow=($row["pid"]);
?>
</head>
<body>
<form action="listsingleREV.php?pidrow=<?php echo $pidrow; ?>" method="POST">
<input type="submit" id="pidrow" value="View this image" />
</form>
</body>
</html>
如果您点击“查看此图像”按钮,用户上传的图像将会出现。我的第一个问题是:图像src
中问号的含义是什么。我知道img src
中有一个PHP标记,但我不明白为什么在listsingleREV.php
和pidrow
之间有一个问号。
listsingleREV.php
看起来是这样的:
<?php
session_start();
$pidrow=$_GET['pidrow'];
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("printstagram");
$sql = "SELECT pid FROM photo WHERE pid=$pidrow";
$result = mysql_query($sql);
?>
<?php
while($row = mysql_fetch_array($result)) {
?>
<img src="imageview.php?pid=<?php echo $row["pid"]; ?>" /><br/>
<?php
}
?>
imageview.php
看起来是这样的:
<?php
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("printstagram") or die(mysql_error());
if(isset($_GET['pid'])) {
$sql = "SELECT image FROM photo WHERE pid=" . $_GET['pid'];
$result = mysql_query("$sql") or die("<b>Error:</b> Problem on Retrieving Image BLOB<br/>" . mysql_error());
$row = mysql_fetch_array($result);
header("content-type: image/jpeg");
echo $row["image"];
}
mysql_close($conn);
?>
当然,如果一个用户点击一个按钮,查看每个图像,这是非常不方便的。所以我决定给自己一些练习和修改代码(这是Apache许可证,所以我可以做到这一点),使得图像将自动呈现在profileinfo.php
上,而不需要点击按钮。由于imageview.php
和listsingleREV.php
显示图像,我试图用这两个文件替换profileinfo.php
中的表单。我为此工作了四个小时而没有实现我的目标。有人能告诉我在profileinfo.php
上显示图像的正确方法,无需点击按钮吗?
'imageview.php?pid ='..?这里的问号有HTTP GET参数。 –
需要注意的是,这个代码库可能不是最适合从中学习的代码。它使用的是从PHP 7中删除的API,因为它非常可怕('mysql_ *'),并且散布着绝对荒谬的[SQL注入漏洞](http://bobby-tables.com/)。如果你把它作为一个公共站点,它可以在几秒钟内被销毁。请查看[PHP正确方法](http://www.phptherightway.com/)获取有关要做什么和要避免什么的更新最新建议。 – tadman
@tadman我正要评论同样的事情...... –