php mvc传递userdata

时间:2012-10-15 16:04:30

标签: php model-view-controller

我正在使用个人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请求时,它不起作用......

1 个答案:

答案 0 :(得分:0)

您可以简单地将经过身份验证的用户信息保存在$ _SESSION中,并且可以在任何请求中访问它(包括AJAX,考虑到您的会话cookie可用)。 但关于帖子ID,故事有点不同,您可以在查看页面时保存会话中的帖子ID但是如果用户同时打开多个帖子,评论会混淆,因为帖子ID值是在每个“查看帖子”请求中都已更改。

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