首页 > 解决方案 > 这是我的取消链接代码,用于从它正在工作的服务器文件夹中删除图像,但它会删除文件夹中的新闻图像

问题描述

这是我的取消链接代码,用于从它正在工作的服务器文件夹中删除图像,但它删除了文件夹中的新闻图像,而不是与 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']; ?>
    &amp;block_id=<?php echo $row_rsarchitectural_blocks['block_id']; ?>
    &amp;log_id=<?php echo $row_rslogs['log_id']; ?>
    &amp;record_id=<?php echo $row_rsrecords['record_id']; ?>
    &amp;image_id=<?php echo $row_rsrecord_images['image_id']; ?>
    &amp;site_criteria=<?php echo htmlspecialchars ($site_criteria, ENT_QUOTES); ?>
    &amp;site_attributes=<?php echo htmlspecialchars ($site_attributes, ENT_QUOTES); ?>
    &amp;block_criteria=<?php echo htmlspecialchars ($block_criteria, ENT_QUOTES); ?>
    &amp;block_attributes=<?php echo htmlspecialchars ($block_attributes, ENT_QUOTES); ?>
    &amp;logs_criteria=<?php echo htmlspecialchars ($logs_criteria, ENT_QUOTES); ?>
    &amp;log_criteria=<?php echo htmlspecialchars ($log_criteria, ENT_QUOTES); ?>
    &amp;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>

标签: phpdelete-fileunlink

解决方案


您的查询会获取所有记录,因为您说where image_id = image_id. 应该image_id是一个变量还是什么?

然后$image_name = $row["image_path"];将是表中最后一条记录的值,从而导致该图像被删除。


推荐阅读