【发布时间】:2012-09-06 18:56:14
【问题描述】:
我对 PHP 相当陌生,正在制作一个基本的 CRUD 样式管理系统。我有一个更新页面,它显示新闻表中的数据,并用它填充表单。当前图片 ?(reference) 被拉出并显示在表单上。但是,如果用户想要更改图片,他们可以按“删除”按钮,然后我编写了一些 PHP 来显示上传按钮,将数据库中的图像值设置为 null 并隐藏删除按钮,允许用户上传新图片。
删除按钮仅从数据库中删除图片的引用(路径),并不会删除实际图片。
这是显示图像和删除按钮的 HTML 控件。它还显示了删除按钮的工作原理:
<td align="right">Image 1:</td>
<td align="left"><img src="uploads/newsimages/<?php echo $row["Image"]; ?>" width="230" border="0"> <a href="UpdateNews.php?change=imagex&cid=<?php echo $row["NewsID"]; ?>">delete</a></td>
如您所见,单击它会设置 change=imagex 和 cid= 当前新闻 id。
然后我写了一个 if 语句,但它似乎并没有仅在单击删除按钮时被激活。因为我总是收到“cid”未定义的错误。如下:
<?php
if (isset($_GET['change'] = "image1") {
$query = "UPDATE Table_Name SET Image = '' WHERE NewsID =".$_GET['cid']." ";
}
?>
我很确定我缺乏 PHP 知识让我失望了,我试图以错误的方式解决这个问题,因为但是我更改了 if 语句,它总是给我一个错误。首先它是 cid 是未定义的,所以我改为 id 但我已经将它用于其他东西,另一个查询/功能。我希望大家都明白,谁能告诉我我哪里出错了?
【问题讨论】:
-
你只是想删除服务器上的文件吗?
-
你检查过你输出的 HTML 以确保它是正确的吗?
-
警告您的代码容易受到 sql 注入攻击。
-
是的,我知道它不是一个非常安全的查询,我可以写得更安全,它只是用于基本测试和功能。不过感谢您的提醒:)
-
Psst,
=是赋值,==是一般相等。另外,read up on prepared statements 保护自己免受上述 SQL 注入漏洞的侵害。
标签: php html sql-server if-statement