✏️ 正在编辑: Login.php
路径:
/srv/systems_dir/yuppiecred-bkp/application/forms/Login.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php use Modules\Gatekeeper\Service\Gatekeeper as Gatekeeper; class Form_Login extends Core_Form { public function init() { parent::init(); $this->setName('form_login'); $this->clearDecorators(); $this->setElementDecorators(array( 'ViewHelper', array( 'HtmlTag', array( 'tag' => 'dd' ) ), array( 'Label', array( 'tag' => 'dt' ) ) )); $select = new Zend_Form_Element_Select('tipo_acesso'); $select->setLabel('Acessar como:') ->setRequired(true) ->addMultiOptions($this->_getTiposAcessoOptions()); $this->addElement($select); $this->addElement('text', 'usuario', array( 'label' => 'Usuário:', 'required' => true, 'size' => 20, 'autocomplete' => 'username' )); $this->addElement('password', 'senha', array( 'label' => 'Senha:', 'required' => true, 'size' => 20 )); $this->addElement( 'hidden', 'recaptcha', array( 'required' => false, 'ignore' => true, 'autoInsertNotEmptyValidator' => false, 'decorators' => array( array( 'HtmlTag', array( 'tag' => 'div', 'class' => 'g-recaptcha', 'data-sitekey' => '6Le9ULoUAAAAAEq884Eo7lKiYxddiITSnJkccpdO', 'data-size' => 'invisible', 'data-callback' => "onSubmit", ) ) ) ) ); $this->recaptcha->clearValidators(); $this->addElement('submit', 'submit', array( 'ignore' => true, 'label' => 'Entrar', 'class' => 'login btn_login' )); $this->addElement('button', 'button', array( 'ignore' => true, 'label' => 'Cancelar', 'onclick' => "window.close()", 'class' => 'cancel' )); $this->addElement('button', 'reset_password', [ 'label' => 'Esqueci minha senha', 'class' => 'reset_password invisible' ]); $this->addDisplayGroup(['submit', 'button', 'reset_password'], 'buttons'); $this->_setDefaultDecorators(); } protected function _setDefaultDecorators() { $this->setDecorators( array( 'FormElements', array( 'HtmlTag', array( 'tag' => 'dl', 'class' => 'form_login' ) ), 'Form' )); } protected function _getTiposAcessoOptions() { $options = Gatekeeper::tipoAcesso(); return $options; } public function isValid($data) { if( !empty($data['usuario']) ){ $data['usuario'] = strip_tags($data['usuario']); } if( !empty($data['senha']) ){ $data['senha'] = strip_tags($data['senha']); } return parent::isValid($data) && $this->captchaIsValid($data); } protected function requestCaptcha($captchaData) { $params = array ( "secret" => "6Le9ULoUAAAAAAU5Ylg-uJaBuO1aMeXIkF4AyyWb", "response" => $captchaData, "remoteip" => $_SERVER["REMOTE_ADDR"] ); $curlReCaptcha = curl_init(); curl_setopt($curlReCaptcha, CURLOPT_URL,"https://www.google.com/recaptcha/api/siteverify"); curl_setopt($curlReCaptcha, CURLOPT_POST, true); curl_setopt($curlReCaptcha, CURLOPT_POSTFIELDS, http_build_query($params)); curl_setopt($curlReCaptcha, CURLOPT_RETURNTRANSFER, true); $result = json_decode(curl_exec($curlReCaptcha), true); curl_close($curlReCaptcha); if( $result['success'] ){ return true; } return false; } public function captchaIsValid($data) { if( empty($data['g-recaptcha-response']) ){ return false; }elseif( !$this->requestCaptcha($data['g-recaptcha-response']) ){ return false; } return true; } }
💾 保存文件
← 返回文件管理器