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。 我在這裏做錯了什麼?
你顯示的代碼非常有限,以至於很難知道它可能是什麼......如果你改變setState('attempt',改爲其他的東西?改爲「試」而不是? – rain01
同樣的錯誤,將它改爲'試試' –
我建議使用cookie而不是會話,例如:如果你想在n次登錄嘗試後顯示驗證碼,如果使用會話用戶可以簡單地關閉瀏覽器來關閉會話,並再次打開頁面,並嘗試登錄而不顯示驗證碼。 –