实际页面启动$.ajax (POST)
请求,receiver.php
需要修改$_SESSION
。
但是它不起作用,我不知道id
的{{1}}是否不同,或者我是否需要在页面上刷新以注册修改。
我尝试传输会话ID并修改它:
$_SESSION
但此代码无效......
我的<?php
if ( count( $_POST ) > 1 && isset( $_POST["s"] ) )
{
session_id( $_POST["s"] );
session_start();
}
?>
请求很简单:
$.ajax
我的var s = <?php echo "'" . session_id() . "'"; ?>;
$.ajax({
url: 'jquery/receiver.php',
type: 'POST',
dataType: 'html',
data: {
s: s, // session id, useless?
// data...
},
}).done(function ( data ) {
// operations ...
}
;
receiver.php
最后,可以使用<?php
if ( count( $_POST ) > 1 && isset( $_POST["s"] ) )
{
session_id( $_POST["s"] );
session_start();
}
$_SESSION['longarray']['key'] = 'value';
?>
修改$_SESSION
吗?或者我可能只有一个问题因为$.ajax (POST)
是$_SESSION
?
答案 0 :(得分:1)
好的,我尝试了以下内容 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>
ajax调用receiver.php
<?php
if ( count( $_POST ) >= 1 && isset( $_POST["s"] ) )
{
session_id( $_POST["s"] );
session_start();
$_SESSION['longarray']['key'] = 'mix';
}
else
echo "ERROR";;
?>
在testp1.php上,正文显示mix
答案 1 :(得分:0)
我在rakesh219的帮助下发现了我的错误!
在我的代码中,我引入了愚蠢的行,如:
if ( ! isset( $_SESSION['akey'], $_SESSION['akey']['anotherkey'] ) {
$_SESSION['akey'] = new array();
$_SESSION['akey']['anotherkey'] = new array();
}
我已删除它并且已修复!