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 中,并且可以在任何请求中访问它(包括 AJAX,考虑到您的会话 cookie 可用)。但是关于帖子 ID,故事有点不同,您可以在查看页面时将帖子 ID 保存在会话中,但如果用户同时打开多个帖子,评论会混淆,因为帖子 ID 值为每次“查看帖子”请求时都会更改。

我的建议是将表单中的帖子 ID 作为隐藏字段插入(如果需要,您可以对其进行加密,但我认为没有理由),将其与会话中的用户 ID 和 CSRF 令牌结合使用以确保请求不是伪造的。

于 2012-10-15T16:23:16.460 回答