将$ _session ['username']保存在ajax函数中

时间:2012-02-22 05:59:22

标签: php javascript mysql html ajax

我一直在搞乱剧本,现在我正处于保护部分。 基本上我无法收到$_session['username']请求。 我不能使用cookies,因为这些可以伪造。这是一个非常大的安全漏洞。 这是一个常见的问题吗?

(非ajax和ajax页面具有相同的session-id,是的。我确实使用session_start();)

如果您知道任何好的评论脚本,如果您想要链接,它将会被评价! c:)

编辑: 用户登录,会话启动。 现在我正在将页面/帖子与修改后的评论脚本相结合。 (见http://tutorialzine.com/2010/06/simple-ajax-commenting-system/) 我所做的是,我使它与多个页面一起工作,并删除了用户和&密码随脚本提供的东西。

请求与此类似:

$ user = $ _session ['username'];

if(!($ data ['user'] = $ user)){    $ errors ['error'] = $ _session ['username']; //只是为了查看它是否可以找到用户名 }

上述请求返回空值,但如果我运行“echo $ _session ['username'];”在调用java的页面上,我得到“powback”。

编辑: 我无法让这个工作,但我做了一个旁路。我设法通过其他类型的验证将$ _session ['username']直接插入数据库。目前的一个是愚蠢的...它应该现在正常工作。谢谢!

3 个答案:

答案 0 :(得分:1)

如果不通过cookie,您如何传递会话ID?如果您通过URL传递它(这是一个更大的安全风险),请确保将其传递给您的AJAX请求的URL。

答案 1 :(得分:0)

您可以在任何功能或文档中使用此功能。并更改要发布值的页面名称。

var postRecord = 'variable='+value;
$.post("PHP_Page_Where_you_are_using_session.php", postRecord,  function(response,status, xhr){
                        if (status == "success") {
                            alert('done');
                        }
                        else if (status == "error") {
                            alert('Something went wrong, we are working to fix it'); 
                        }
});

在另一个页面上,您可以在$ _POST ['variable']中获取帖子值;

将变量名称更改为您要使用的另一个变量。

答案 2 :(得分:0)

试试这个

   var v="any variable to be passed";
     $.post( "passingfile.php",{name:v}, 
     function(data) {
        Alert("Pass OK");
     });
     return false; 

  });

如果你为了安全,请尝试不要通过url传递会话ID