$Verify = new \Think\Verify();
$Verify->entry(1);
$Verify->entry(2);可看session结果却是2覆盖了1。var_dump($_SESSION);结果:array(1) { ["d2d977c58444271d9c780187e93f80e5"]=> array(1) { [2]=> array(2) { ["verify_code"]=> string(32) "5e7a4869de150d3bd0439ca76e689bf8" ["verify_time"]=> int(1391357880) } } }
里面只有2.
看源码的entry部分154行开始是这样的:
/Library/Think/Verify.class.php
// 保存验证码
$key = $this->authcode($this->seKey);
$code = $this->authcode(strtoupper(implode('', $code)));
$session = array();
if($id) {
$session[$id]['verify_code'] = $code; // 把校验码保存到session
$session[$id]['verify_time'] = NOW_TIME; // 验证码创建时间
} else {
$session['verify_code'] = $code; // 把校验码保存到session
$session['verify_time'] = NOW_TIME; // 验证码创建时间
}
session($key, $session);岂不是每次调用entry时都执行了session($key,$session);每次都覆盖了前面的了?这是什么意思呢? 最佳答案