当我单击“取消”按钮时,它不会删除数据库行


It is not deleting a database row when I click on the Cancel button

我有一个"取消"按钮,当用户单击它时,它会重置源并删除iframe,以便在用户单击"取消"按钮后文件不会上传到服务器。这工作正常。

但是我遇到的问题是,在用户单击"取消"按钮之后,我不希望它将行插入数据库。但是正如我已经说过的那样,如果上传了文件,然后在数据库中插入一行显示文件名,那么我想做的是,如果单击"取消"按钮,那么它将导航到"取消图像.php"页面,它将删除该行。因此,从技术上讲,如果单击"取消"按钮,则会插入该行,然后将其删除。

问题是它不是删除行,它只是插入行。如何让它删除数据库中的行?

下面是startImageUpload((函数,它开始上传,取消按钮功能的特点是:

function startImageUpload(imageuploadform){
$(".imageCancel").on("click", function(event) {
              $("iframe[name='upload_target']").attr("src", "javascript:'<html></html>'");
          return stopImageUpload();
    jQuery.ajax("cancelimage.php")
});       
      return true;
}

下面是包含上传脚本(imageupload.php(的代码,它将一行插入数据库:

<?php
session_start();

$username="xxx";
$password="xxx";
$database="xxx";
mysql_connect('localhost',$username,$password);
mysql_select_db($database) or die( "Unable to select database");
$result = 0;
      move_uploaded_file($_FILES["fileImage"]["tmp_name"],
      "ImageFiles/" . $_FILES["fileImage"]["name"]);
      $result = 1;
        $imagesql = "INSERT INTO Image (ImageFile) 
        VALUES ('ImageFiles/".mysql_real_escape_string($_FILES['fileImage']['name'])."')";
mysql_query($imagesql);
      }
      mysql_close();
?>

最后,下面是 cancelimage.php 页面,假设从数据库中删除该行:

<?php
$username="xxx";
$password="xxx";
$database="xxx";
mysql_connect('localhost',$username,$password);
mysql_select_db($database) or die( "Unable to select database");
    echo "File Upload was Canceled";
        $imagecancelsql = "DELETE FROM Image 
        WHERE ImageFile = 'ImageFiles/". mysql_real_escape_string($_FILES['fileImage']['name'])."'";
    mysql_query($imagecancelsql);
    mysql_close();

?>

当您调用 cancelimage 时.php $_FILES['fileImage']['name']将不再包含该名称。它仅包含上传页面的文件名。您需要将名称存储在 cookie、会话或其他内容中。


编辑:

永远不要相信来自客户端的输入:

move_uploaded_file($_FILES["fileImage"]["tmp_name"], "ImageFiles/" . $_FILES["fileImage"]["name"]);

如果我上传了文件名为"../图片上传.php'。您的网站将坏;)更糟糕的是,我可以注入各种讨厌的代码。

返回停止图像上传((;

您的语句读起来就像处理了停止图像并返回执行。 以下语句永远不会被调用jQuery.ajax("cancelimage.php")