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();

$_SESSIONYiiプロジェクトで使用したことはありません。

于 2012-10-11T08:25:09.457 に答える