php - 这是我的取消链接代码,用于从它正在工作的服务器文件夹中删除图像,但它会删除文件夹中的新闻图像
问题描述
这是我的取消链接代码,用于从它正在工作的服务器文件夹中删除图像,但它删除了文件夹中的新闻图像,而不是与 image_id 或 image_path 关联的图像,所以我如何告诉它删除图像image_id 还是 image_path?
<?php
if (isset($_POST['submit'])) {
$res = mysql_query("select * from record_images where image_id=image_id");
while ($row = mysql_fetch_array($res)) {
$image_name = $row["image_path"];
}
unlink($image_name);
}
?>
这是我的新代码,效果很好。糟糕,我犯了一个错误,它会删除与 image_id 关联的图像,但是当我单击编辑页面中的链接时,它会过早地删除服务器文件夹中的图像,它会将我发送到删除页面,它会删除图像当时很瘦,我必须单击“删除”按钮来删除数据库中该 image_id 的条件,我不希望这种情况发生。在单击“删除”页面中的“删除”按钮之前,我不希望删除服务器文件夹中的图像
<?php
if (isset($_GET['image_id']))
{
$res=mysql_query("SELECT * From record_images where image_id=".$_GET['image_id']);
while($row=mysql_fetch_array($res))
{
$image_name=$row["image_path"];
$thnimage_name=$row["thumbnail_path"];
}
unlink($image_name);
unlink($thnimage_name);
}
?>
所以这是我的新代码。现在,当我单击“删除”页面中的“删除”按钮而不是之前,它将删除服务器文件夹中的图像。我必须将此 image_id 添加到删除按钮的其余条件中
<?php
if ((isset($_POST['submit'])) && ($_POST['image_id'] != ""))
{
$res=mysql_query("SELECT * From record_images where image_id=".$_GET['image_id']);
while($row=mysql_fetch_array($res))
{
$image_name=$row["image_path"];
$thnimage_name=$row["thumbnail_path"];
}
unlink($image_name);
unlink($thnimage_name);
}
?>
这是我的删除按钮代码在添加条件后的样子
<form id="form1" name="form1" method="post" action="/finditlogit/private/sites/logs/artifacts/records/photo_gallery/delete.php?
site_id=<?php echo $row_rssites['site_id']; ?>
&block_id=<?php echo $row_rsarchitectural_blocks['block_id']; ?>
&log_id=<?php echo $row_rslogs['log_id']; ?>
&record_id=<?php echo $row_rsrecords['record_id']; ?>
&image_id=<?php echo $row_rsrecord_images['image_id']; ?>
&site_criteria=<?php echo htmlspecialchars ($site_criteria, ENT_QUOTES); ?>
&site_attributes=<?php echo htmlspecialchars ($site_attributes, ENT_QUOTES); ?>
&block_criteria=<?php echo htmlspecialchars ($block_criteria, ENT_QUOTES); ?>
&block_attributes=<?php echo htmlspecialchars ($block_attributes, ENT_QUOTES); ?>
&logs_criteria=<?php echo htmlspecialchars ($logs_criteria, ENT_QUOTES); ?>
&log_criteria=<?php echo htmlspecialchars ($log_criteria, ENT_QUOTES); ?>
&log_attributes=<?php echo htmlspecialchars ($log_attributes, ENT_QUOTES); ?>">
<input type="submit" name="submit" value="Delete" />
<input name="image_id" type="hidden" id="image_id" value="<?php echo $row_rsrecord_images['image_id']; ?>" />
</form>
解决方案
您的查询会获取所有记录,因为您说where image_id = image_id
. 应该image_id
是一个变量还是什么?
然后$image_name = $row["image_path"];
将是表中最后一条记录的值,从而导致该图像被删除。
推荐阅读
- sharepoint - SharePoint 2013:缺少编辑再现按钮
- javascript - 使用 Express 和 EJS 从另一个 js 文件传递 JSON
- ios - 点击 CollectionVC 时将 API 数据传递给 TableVC
- api - 如何验证 API 是否在 JMeter 中抛出 200 OK 作为状态码
- bash - 问题无法在 bash 脚本中执行所有 bash 脚本
- wordpress - Wordpress/Gutenberg 侧边栏向右挤压
- neo4j - Neo4j - 每当使用任何带有 GET 或 POST 的查询时都会遇到 FetchURLError
- python - 如何在 python 中显示/保存从服务器收到的带有 http 请求的 xlsx 文件?
- android - Amplify.DataStore.query 正在返回由所有用户创建的数据,而不仅仅是所有者
- vba - 如何在 VBA 中使用 Selenium 禁用 navigator.webdriver?