1

個人の MVC システムを使用してブログを作成しています。できます。ここで、ユーザー コメントを送信します。問題は、AJAX でユーザー ID と投稿 ID を送信したくないということです。それは不正なコメントを可能にするでしょう。ユーザーのセッションを「記憶」してサーバーに渡すにはどうすればよいですか?

私の投稿は次のようになります。var text = encodeURI($('#folderComment').val());

var text = encodeURI($('#folderComment').val());
$.post(
        "<?= URL_MVC ?>/FolderComment/add/"+text, {},
        function(data){
            var content = data.split("##");
            var html = '<tr>';
            html += '<td>' + content[0] + '<br>' + content[2] + '</td>';
            html += '<td>' + content[1] + '</td>';
            html += '</tr>';
            $('#commentsTable').prepend(html);
        });

ユーザーの ID を送信する必要がありますか? 受信コントローラーで使用しているため

$userid = isset($_SESSION['user']['fkuser']) ? $_SESSION['user']['fkuser'] : $defaultid;

このパラメーターはビューとモデルで正常に機能しますが、AJAX 要求をコントローラーに送信すると機能しません...

4

1 に答える 1

0

認証されたユーザーの情報を $_SESSION に保存するだけで、任意のリクエストでアクセスできます (セッション Cookie が利用可能であることを考慮して、AJAX を含む)。ただし、投稿IDについては話が少し異なります。ページが表示されているときに投稿IDをセッションに保存できますが、ユーザーが同時に複数の投稿を開くと、投稿IDの値が「投稿の表示」リクエストごとに変更されます。

私の提案は、フォームに投稿IDを非表示フィールドとして挿入することです(必要に応じて暗号化できますが、その理由はわかりません)、セッションのユーザーIDおよびCSRFトークンと組み合わせて使用​​ して確認してくださいリクエストは偽造されていません。

于 2012-10-15T16:23:16.460 に答える