Php 使用$.ajax更改$会话
实际页面启动一个Php 使用$.ajax更改$会话,php,ajax,session,Php,Ajax,Session,实际页面启动一个$.ajax(POST)请求,receiver.php需要修改$\u会话。 但是它不起作用,我不知道$\u SESSION的id是否不同,或者我是否需要刷新页面以注册修改 我尝试传输会话id并使用以下内容修改它: <?php if ( count( $_POST ) > 1 && isset( $_POST["s"] ) ) { session_id( $_POST["s"] ); session_sta
$.ajax(POST)
请求,receiver.php
需要修改$\u会话。
但是它不起作用,我不知道$\u SESSION
的id
是否不同,或者我是否需要刷新页面以注册修改
我尝试传输会话id并使用以下内容修改它:
<?php
if ( count( $_POST ) > 1 && isset( $_POST["s"] ) )
{
session_id( $_POST["s"] );
session_start();
}
?>
我的receiver.php
<?php
if ( count( $_POST ) > 1 && isset( $_POST["s"] ) )
{
session_id( $_POST["s"] );
session_start();
}
$_SESSION['longarray']['key'] = 'value';
?>
最后,可以使用$修改$\u会话
。ajax(POST)
?或者可能我只有一个问题,因为我的$\u会话是数组?好的,我尝试了以下方法
testp1.php
<?PHP
session_start();
?>
<script type="text/javascript" src="../../common/jquery/jquery-1.10.2.min.js"></script>
<script>
$(document).ready(function () {
var s = '<?php echo session_id(); ?>';
$.ajax({
url: 'receiver.php',
type: 'POST',
data: {
s: s, // session id, useless?
// data...
},
success: function(data){ console.log(data); }
})
})
</script>
<body>
<?PHP
echo $_SESSION['longarray']['key'];
?>
</body>
$(文档).ready(函数(){
var s='';
$.ajax({
url:'receiver.php',
键入:“POST”,
数据:{
s:s,//会话id,无用?
//数据。。。
},
成功:函数(数据){console.log(数据);}
})
})
对receiver.php的ajax调用
<?php
if ( count( $_POST ) >= 1 && isset( $_POST["s"] ) )
{
session_id( $_POST["s"] );
session_start();
$_SESSION['longarray']['key'] = 'mix';
}
else
echo "ERROR";;
?>
在testp1.php上,主体显示了mix
我在的帮助下发现了我的错误
在我的代码中,我引入了一些愚蠢的行,比如:
if ( ! isset( $_SESSION['akey'], $_SESSION['akey']['anotherkey'] ) {
$_SESSION['akey'] = new array();
$_SESSION['akey']['anotherkey'] = new array();
}
我已经把它拆了,它已经修好了 不是真的。。。因为$\u会话id
可以是“bba31afe537857688b692fa9bb8df746”,所以是字符串。很抱歉,您在发布后意识到了这个错误!谢谢你抽出时间!好的,可能是因为我在$\u SESSION
中使用了array
。我想指出,如果您在testp1.php上设置$\u SESSION['longarray']['key']
,那么输出将是testp1.php上的值,而不是receiver.php中设置的值
if ( ! isset( $_SESSION['akey'], $_SESSION['akey']['anotherkey'] ) {
$_SESSION['akey'] = new array();
$_SESSION['akey']['anotherkey'] = new array();
}