0

对于这种特殊的用户能力,我想问两件事。第一个是如何在用户单击按钮时删除一行。第二个是....这是个好主意吗?我怎样才能为某人创造一个安全的环境来做到这一点。这是我到目前为止所得到的:

<?php

include_once "db_conx.php";

    if($_POST['wall'] == "post") {
    //open if($_POST['wall'] == "post")
        $id = mysqli_real_escape_string($db_conx, trim($_POST['id1']));
            if($id == " ")
                {
                    exit();
                }
                else
            $sql = "SELECT FROM courseprogress WHERE userid='$id' LIMIT 1";
            $results = mysqli_query($db_conx, $sql);
            $sidebar = mysqli_num_rows($results);
                if($sidebar > 0) {
                //close if($sidebar > 0)
                    while($row = mysqli_fetch_assoc($results))
                    {
                        $sql = mysqli_query("DELETE FROM courseprogress WHERE userid='$id'");
                        $results = mysqli_query($db_conx, $sql);

                    }
                //close if($sidebar > 0)

                }
                else
                {
                    echo 'Already Complete!';
                    echo "<pre>";
                        var_dump($sql);
                        echo "</pre><br>";
                }



    //close if($_POST['wall'] == "post")
    }



?>

现在我正在转储变量,但似乎无法正确获取我的 id 变量。

从某种意义上说,这个想法是“重新开始”。该表包含用户进度和设置。一旦他们决定他们需要重新开始,他们将被允许通过简单地删除该行来重新开始。当再次开始时,将再次创建该行。

更多信息:

我尝试使用的小型脚本是:

<div class="userInfoContain"><div class="positionRight"><div id="form"> <form><div class="submit"><input type="hidden" id="id" value="'.$id.'" /><input type="submit" name="button" id="button" value="Start Over" onclick="return false" onmousedown="javascript:wall();"/><img src="images/loading.gif" alt="" width="15" height="15" id="loadingstart" /></div></form></div></div></div>
                                <script type="text/javascript">
                                        $(document).ready(function(){
                                         $('#loadingstart').hide();
                                        });

                                        function wall(){
                                        $('#loadingstart').show();
                                          var id = $('#id').val();  
                                          var URL = "./includes/start-over-user.php"; /////post.php will be equal the variable "comment"

                                          $.post(URL,{wall:"post",id1:id},function(data){//parameter wall will be equal "post", name1 will be equal to the var "name" and comment1 will be equal to the var "comment"
                                          $("#result").prepend(data).show();// the result will be placed above the the #result div
                                          $('#loadingstart').hide();
                                          });
                                         }
                                </script>
4

2 回答 2

0

1)安全地允许用户删除:最安全的方法是不允许网站正在使用的 MySQL 用户的删除权限。一种称为软删除的方法对于删除 MySQL 表中的行要安全得多。这涉及将名为“is_deleted”的列添加到您进行此更新的表中。当 is_deleted 设置为 0 时,允许该行正常运行。当用户将 is_deleted 设置为 1 时,它应该表现得好像它不存在一样。在此示例中,我假设您已将 $is_deleted 设置为表中的 is_deleted 列:

if($is_deleted == '1')
{
    // Don't display
}
else
{
    // Display
}

2)如何实施:最好的方法是:

UPDATE tablename SET is_deleted = '1' WHERE id = '".$id."'

这应该通过 AJAX 命令或将执行 MySQL 查询的链接执行。

于 2013-08-12T18:38:21.517 回答
0

删除我建议你使用 ajax,它是完美的,你可以对这个动作有更多的控制另一个问题我需要更多的解释我不明白你很好

于 2013-08-12T18:38:29.880 回答