用于计算登录尝试的会话变量

时间:2012-10-11 08:09:28

标签: php login yii session-variables

我正在尝试实现一个登录方案,我会计算用户尝试的尝试次数,这是出于安全原因。我的代码是:

{
    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通知:“未定义的索引:尝试”

然而,在第一次转储以及回声中,我获得了正确的尝试次数。 我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为您应该使用CHttpSession代替$_SESSION

$session=new CHttpSession;
$session->open();

$session['attempts'] = 0;
$session['sleep'] = 0;
$session['ip']=$this->get_ip_address();

我从未在任何Yii项目中使用$_SESSION