我正在尝试实现一个登录方案,我会计算用户尝试的尝试次数,这是出于安全原因。我的代码是:
{
ob_start();
$_SESSION['attempts'] = 0;
$_SESSION['sleep'] = 0;
$_SESSION['ip']=$this->get_ip_address() ;
$login = new User('login');
// renders the view file 'protected/views/site/index.php'
// using the default layout 'protected/views/layouts/main.php'
if(isset($_POST['yt0']))
{
$login->Username = ($_POST['User']['Username']);
$salt = $login->getSaltByUsername($login->Username) ;
$login->SecretCode = $this->hasher($login->Username,($_POST['User']['SecretCode']),$salt);
var_dump($_SESSION) ; /*First Dump , gives all session variables correctly*/
echo $_SESSION['attempts'] ;
Yii::app()->user->setState('attempts', $_SESSION['attempts']++);
var_dump($_SESSION) ;
我收到PHP通知:“未定义的索引:尝试”
然而,在第一次转储以及回声中,我获得了正确的尝试次数。 我在这里做错了什么?
答案 0 :(得分:1)
我认为您应该使用CHttpSession
代替$_SESSION
$session=new CHttpSession;
$session->open();
$session['attempts'] = 0;
$session['sleep'] = 0;
$session['ip']=$this->get_ip_address();
我从未在任何Yii项目中使用$_SESSION
。