Php 将$会话[';用户名';]保留在ajax函数中

Php 将$会话[';用户名';]保留在ajax函数中,php,javascript,mysql,html,ajax,Php,Javascript,Mysql,Html,Ajax,我一直在搞乱一个脚本,现在我在保护部分。 基本上我无法收到$\u会话['username']请求。 我不能用饼干,因为这些饼干可能是假的。这是一个相当大的安全漏洞。 这是一个普遍的问题吗 (非ajax和ajax页面具有相同的会话id,是的。我确实使用会话_start();) 如果你知道任何好的评论脚本,如果你想链接,将不胜感激!c:) 编辑: 用户登录并启动会话。 现在,我将页面/帖子与修改后的评论脚本结合起来。(可在此处找到:) 我所做的是,我让它可以处理多个页面,并删除了脚本中提供的用户和密

我一直在搞乱一个脚本,现在我在保护部分。 基本上我无法收到
$\u会话['username']
请求。 我不能用饼干,因为这些饼干可能是假的。这是一个相当大的安全漏洞。 这是一个普遍的问题吗

(非ajax和ajax页面具有相同的会话id,是的。我确实使用会话_start();)

如果你知道任何好的评论脚本,如果你想链接,将不胜感激!c:)

编辑: 用户登录并启动会话。 现在,我将页面/帖子与修改后的评论脚本结合起来。(可在此处找到:) 我所做的是,我让它可以处理多个页面,并删除了脚本中提供的用户和密码

请求与此类似:

$user=$\会话['username']

如果(!($data['user']=$user)){ $errors['error']=$\u session['username'];//看看它是否能找到用户名 }

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

编辑:
我没法让它工作,但我做了个旁路。我设法用另一种验证方法将$_会话['username']直接插入数据库。现在的那个很愚蠢。。。现在应该可以正常工作了。谢谢大家!

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

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

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

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']内获得post值


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

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

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']内获得post值

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

尝试此操作

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

  });
如果出于安全考虑,请尝试不通过url传递会话id

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

  });

如果出于安全考虑,请尝试不通过url传递会话id,会话存储在服务器上。您是否试图验证Ajax请求的源是否与触发会话创建的任何非Ajax源相同(例如,作为身份验证例程的一部分)?会话存储在服务器上。您是否试图验证Ajax请求的源是否与触发会话创建的任何非Ajax源相同(例如,作为身份验证例程的一部分)?我通过cookie传递会话,但身份验证例程基本上是确认包含用户名的post值与$\会话相同['username']。但是,我无法在ajax中检索会话值。在非ajax源上,可以毫无问题地检索它。我通过cookie传递会话,但身份验证例程基本上是确认包含用户名的post值与$\u会话['username']相同.但是,我无法在ajax中检索会话值。在非ajax源代码中,可以毫无问题地检索会话值。