Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在与post相同的PHP页面中处理数据库删除操作_Php_Html_Forms_Html Post - Fatal编程技术网

在与post相同的PHP页面中处理数据库删除操作

在与post相同的PHP页面中处理数据库删除操作,php,html,forms,html-post,Php,Html,Forms,Html Post,我正在为流程员工休假记录构建PHP应用程序。在此应用程序中,主屏幕填充数据库记录和操作按钮。当用户单击操作按钮时,它会从表中获取数据库id并遍历另一个文件以删除该记录,然后重定向回同一页面。该机制使用HTML _GET方法实现。这意味着任何人都可以在URL提要中看到行ID,如果有人使用不同的行ID请求此URL,PHP文件将删除该记录,因为中没有采取任何其他安全措施来防止这种情况。而且这个应用程序不使用任何类型的会话 这是我上面提到的任务的href代码 echo "<a href='reje

我正在为流程员工休假记录构建PHP应用程序。在此应用程序中,主屏幕填充数据库记录和操作按钮。当用户单击操作按钮时,它会从表中获取数据库id并遍历另一个文件以删除该记录,然后重定向回同一页面。该机制使用HTML _GET方法实现。这意味着任何人都可以在URL提要中看到行ID,如果有人使用不同的行ID请求此URL,PHP文件将删除该记录,因为中没有采取任何其他安全措施来防止这种情况。而且这个应用程序不使用任何类型的会话

这是我上面提到的任务的href代码

echo "<a href='rejectone.php?id=$lvid' class='btn btn-danger btn-xs m-r-1em'>Cancal</a>";
echo”“;
这是我的rejectone.php代码

<?php
$lid =$_GET['id'];
include 'database.php';
$accval = "Accept";
try {
   $query = "UPDATE leavesrecords SET leavestatus = 'Reject' WHERE lvid = '$lid'";
    $stmt = $con->prepare( $query );
    $stmt->bindParam(1, $id);
    $stmt->execute();
}

catch(PDOException $exception){
    die('ERROR: ' . $exception->getMessage());
}   
header( "refresh:0;url=bs.php" );           
?>

首先更改行:

echo "<a href='rejectone.php?id=$lvid' class='btn btn-danger btn-xs m-r-1em'>Cancal</a>";

就是这样。

使用ajax post方法。有关更多详细信息,请参见带有示例代码的已接受解决方案的完整示例:
然后使用jquery从页面中删除该记录,这将提供更好的UI体验

谢谢你完整的回答。但不知何故,这是行不通的。当我单击按钮时,网页显示javascript确认,但它没有更新行。当我在Firefox的控制台窗口中运行此命令时,我得到错误“ReferenceError:t未定义”。请提供示例以及答案。我已经用接受的解决方案URL更新了评论,因此我们可以避免重复。这有意义吗?
echo '<a href="javascript:;" class="btn btn-danger btn-xs m-r-1em delete-item" primary-key="'.$lvid.'">Cancal</a>';
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
<script type="text/javascript">

$(document).ready(function(){
    $(document).on('click', '.delete-item', function(e){

        e.preventDefault();
        if(!confirm('Are you sure you want to delete this item?')) return false;

        $.post('bs.php', {'id': t.attr('primary-key'), 'delete_item': 1}, function(e){
            window.location = 'bs.php';
        })

    })  
})

</script>
if(isset($_POST['delete_item']))
{
    $lid = (int)$_POST['id'];
    include 'database.php';
    $accval = "Accept";
    try {
       $query = "UPDATE leavesrecords SET leavestatus = 'Reject' WHERE lvid = :lid ";
        $stmt = $con->prepare( $query );
        $stmt->bindParam(':lid', $lid );
        $stmt->execute();
    }

    catch(PDOException $exception){
        die('ERROR: ' . $exception->getMessage());
    }

}