1

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

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

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

4

1 回答 1

1

我认为你应该使用CHttpSession而不是$_SESSION

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

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

我从来没有$_SESSION在我的任何 Yii 项目中使用过。

于 2012-10-11T08:25:09.457 回答