ThinkPHP5

ThinkPHP | Session 的大坑

2017-08-30  本文已影响29人  xiaojianxu

目的:
1、使用 session 保存前端 AJAX 请求发送的数据,login方法中保存数据;
2、从另一个控制器 ShopController 获取 1 中保存的 session 数据;
3、结果出现:打印输出的数据为空;
4、使用原生 PHP + AJAX 获取 session 数据完全没有问题;
5、我想,这极有可能又是 ThinkPHP 框架的 BUG。

IndexController.class.php 代码

`
<?php
namespace Home\Controller;
use Think\Controller;

class IndexController extends Controller {
public function index($uid = 0)
{
$this->assign('title', 'DODU | 注册页面');
$this->display('index/register');
}

public function login()
{
    //$http_params = I('');
    session('12', 12); 
    //echo json_encode($http_params);
    var_dump(session());
}   

}
`

视图代码:

`
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username" value="" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="text" name="password" /></td>
</tr>
<tr>
<td>确认密码:</td>
<td><input type="text" name="repassword" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" id="user_reg" value="注册" />
</td>
</tr>
</table>
<script
src="https://code.jquery.com/jquery-1.12.4.js"
integrity="sha256-Qw82+bXyGq6MydymqBxNPYTaUXXq7c8v3CwiYwLLNXU="
crossorigin="anonymous"></script>
<script type="text/javascript">
$("#user_reg").click(function() {
var user_name = $([name="username"]).attr('value');
$.ajax({
// 不知道传输方式,默认是 get
//method: "post",
url: "{:U('login')}",
data: {pwd: 123},
xhrFields: {withCredentials: true},
crossDomain: true,
success: function(res) {
console.log(res);
}
});
/*
$.post( "ajax/test.html", function( data ) {
$( ".result" ).html( data );
});
$.get( "ajax/test.html", function( data ) {

        $( ".result" ).html( data );
            alert( "Load was performed." );
        });
    })
    */

}); 

</script>
`

ShopController.class.php 代码:

`
<?php

namespace Home\Controller;
use Think\Controller;

class ShopController extends Controller {
    
    public function index() {
        
        var_dump(session('12'));
    }
}

`

上一篇 下一篇

猜你喜欢

热点阅读