首页 > 解决方案 > 确认警报显示,但是当单击“取消”时,无论如何它都会执行删除查询

问题描述

我目前正在创建一个项目,它是一个课程网站,现在我正在构建用户的个人资料页面,可以选择编辑和查看用户的信息,但是我在实现删除帐户功能时遇到了问题。

单击该按钮时,将有一个删除按钮和一个弹出窗口供用户使用。问题是即使我点击取消它也会执行查询,删除用户并将我发送到索引页面,我不知道这是否是重定向的问题,或者我应该用 php 回显脚本而不是调用它来自javascript,在此先感谢您提供的任何帮助。

<?php 

//selects current data of the logged user and display it

if (isset($_SESSION['id_user'])) {
    $id_session = $_SESSION['id_user'];


    $query = "SELECT id_user, first_name, last_name, username, email FROM users ";
    $query .= "WHERE id_user = ? ";

    $stmt = mysqli_stmt_init($con);
    $prepare = mysqli_stmt_prepare($stmt, $query);

    if (!$prepare) {
        die('query failed' . mysqli_error($con));
    } else {

        mysqli_stmt_bind_param($stmt, "i", $id_session);
        mysqli_stmt_execute($stmt);
        $get_user_data = mysqli_stmt_get_result($stmt);

        while ($row = mysqli_fetch_assoc($get_user_data)) {
            $id = $row['id_user'];
            $name = $row['first_name'];
            $last_name = $row['last_name'];
            $username = $row['username'];
            $email = $row['email'];

?>

<div class="profile-table">

<table>
    <tr>
        <th>ID</th>
        <td><?php echo $id; ?></td>
    </tr>
    <tr>
        <th>Name</th>
        <td><?php echo $name; ?></td>
    </tr>
    <tr>
        <th>Last name</th>
        <td><?php echo $last_name; ?></td>
    </tr>
    <tr>
        <th>Usernamee</th>
        <td><?php echo $username; ?></td>
    </tr>
    <tr>
        <th>Email</th>
        <td><?php echo $email; ?></td>
    </tr>
</table>

</div>


<?php } } } ?>

<div class="cont-btn">

<div>
<a class="active-btn" href="profile.php?source=edit&id_u=<?php echo $id; ?>">Edit profile</a>   
</div>  

<div>   
<a class="active-btn del-btn" onClick="deleteConfirm()" href="profile.php?delete=<?php echo $id; ?>">delete account</a>
</div>

</div>




<?php 


if(isset($_GET['delete'])) {

$id_delete = $_GET['delete'];

$query = "DELETE FROM users WHERE id_user = ? ";
$stmt = mysqli_stmt_init($conexion);
$prepare = mysqli_stmt_prepare($stmt, $query);

if(!$prepare) {
    die('Query failed' . mysqli_error($con));
} else {
    mysqli_stmt_bind_param($stmt, "i", $id_delete);
    mysqli_stmt_execute($stmt);
    logout();

}
/* unset everything from session and relocates back to the index page

    function logout()
    {
            
    session_start(); 
    unset($_SESSION['id_user']);
    unset($_SESSION['name']);
    unset($_SESSION['lastname']);
    unset($_SESSION['username']);
    unset($_SESSION['email']);
    unset($_SESSION['role']);
    session_destroy();

    header("Location: ../index.php");

    } */




}

 ?>

 <script>
    function deleteConfirm() {
        confirm('Are you sure you want to delete your account?');
    }
 </script>
`

标签: javascriptphpmysqlmysqlibackend

解决方案


推荐阅读