为用户创建链接以删除行

时间:2013-08-12 18:30:33

标签: php security mysqli

我想问一下这个特定用户能力的两件事。第一个是如何在用户单击按钮时删除行。第二个是......这会是一个好主意吗?如何为某人创建一个安全的环境。这是我到目前为止所得到的:

<?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>

2 个答案:

答案 0 :(得分: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查询的链接执行。

答案 1 :(得分:0)

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