0

この特定のユーザー アビリティについて 2 つのことをお聞きしたいと思います。1 つ目は、ユーザーがボタンをクリックしたときに行を削除する方法です。2つ目は……これでいいの?誰かがこれを行うための安全な環境をどのように作成できますか。これは私がこれまでに持っているものです:

<?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)ユーザーに安全に削除を許可する:最も安全な方法は、Web サイトで使用されている 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 に答える