
就三个功能,挺简单的,
public function actionSend($PhoneNumbers){
//生成验证码
$this->createSmsCode();
return $this->getSessionSmsCode();
}
现在的问题是:actionSend 使用 $this->getSessionSmsCode() 后,存在session里的验证码就清空了,在做验证码比对时,再次使用 $this->getSessionSmsCode() 来获取验证码时为空的,xdebug后,跟踪代码发如上截图错误。
//生成手机验证码,并记录在session中
private function createSmsCode()
{
$key = '';
for( $i=0; $i < $this->codeLen; $i++ ) {
$key .= mt_rand(1, 9);
}
Yii::$app->session->set($this->_sessionKey, $key);
Yii::$app->session->set($this->_sms_time, time());
}
//从session中获取验证码
public function getSessionSmsCode()
{
$sessionKeyCode = Yii::$app->session->get($this->_sessionKey);
$sms_time = Yii::$app->session->get($this->_sms_time);
if( time() - $sms_time < 900){
return $sessionKeyCode;
}else{
return 8888888888;
}
}