1.注册表单
<body>
<div class="container">
<div class="form-signin">
<h2 class="form-signin-heading">积分注册</h2>
<input class="input-block-level" placeholder="姓名" name="Admin[username]" id="Admin_username" type="text" maxlength="250" />
<input class="input-block-level" placeholder="公司手机号" name="Admin[User_company_tel]" id="Admin_User_company_tel" type="text" maxlength="11" />
<input class="input-block-level" placeholder="个人手机号" name="Admin[User_person_tel]" id="Admin_User_person_tel" type="text" maxlength="11" />
<input class="input-block-level" placeholder="密码" name="Admin[password]" id="Admin_password" type="password" maxlength="250" />
<br>
<div class="userdepa">
<select name="Admin[user_depa]" id="Admin_user_depa">
<option value="" >--请选择部门--</option>
<option value="1">管理员</option>
<option value="2">销售</option>
<option value="3">采购</option>
<option value="4">美工</option>
<option value="5">技术</option>
<option value="6">编辑</option>
<option value="7">财务</option>
<option value="8">行政</option>
<option value="9">人事</option>
<option value="10">前台</option>
</select>
</div>
<p><button class="btn btn-primary" type="button" onclick="checkReg()">注册</button></p>
</div>
</div>
</body>
2.注册控制器
<?php
namespace app\modules\admin\controllers;
use Yii;
use yii\web\Controller;
use app\models\OaUser;
use yii\helpers\Url;
/**
* Default controller for the `admin` module
*/
class RegisterController extends Controller
{
public $layout = false;
//注册页面
public function actionRegister(){
return $this->render('register');
}
// 登录验证页面
public function actionValidate(){
$User_Name = Yii::$app->request->post("User_Name");
$query = OaUser::find()->where(['User_Name'=>$User_Name])->one();
if($query){
return json_encode(array('status'=>3));
}else{
$model = new OaUser();
$model['User_Name'] = $User_Name;
$model['User_company_tel'] = Yii::$app->request->post("User_company_tel");
$model['User_person_tel']=Yii::$app->request->post("User_person_tel");
$model['User_Pass'] = md5(Yii::$app->request->post("User_Pass"));
$model['User_Depa']=Yii::$app->request->post("User_Depa");
if($model->save(false)){
return json_encode(array('status'=>200,'url'=>Url::toRoute(['autho/login'])));
}else{
return json_encode(array('status'=>400));
}
}
}
}
3.登录表单
<?php
use yii\helpers\Url;
?>
<!DOCTYPE html>
<html lang="ch-zn">
<head>
<meta charset="UTF-8">
<title>后台管理系统</title>
<link rel="stylesheet" type="text/css" href="/adminui/bootstrap/css/bootstrap.css" />
<script type="text/javascript" src="/TpPublic/Admin/js/jquery.min.1.8.1.js"></script>
<script type="text/javascript" src="/TpPublic/Admin/js/IA300ClientJavascript.js"></script>
<style type="text/css">
body {
padding-top: 40px;
padding-bottom: 40px;
background-color: #f5f5f5;
}
.form-signin {
max-width: 400px;
padding: 19px 29px 29px;
margin: 0 auto 20px;
background-color: #fff;
border: 1px solid #e5e5e5;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
margin-bottom: 10px;
}
.form-signin input[type="text"],
.form-signin input[type="password"],
.form-signin input[type="button"] {
font-size: 16px;
height: auto;
margin-bottom: 15px;
padding: 7px 9px;
}
/*发送验证码按钮*/
.code-btns{
margin-left: 5px;
}
</style>
</head>
<body>
<div class="container">
<div class="form-signin">
<h2 class="form-signin-heading">积分登录</h2>
<input class="input-block-level" placeholder="手机号" name="Admin[user_person_tel]" id="User_person_tel" type="text" maxlength="11" />
<input type="text" placeholder="验证码" id="code"><input type="button" class="code-btns" value="获取验证码" id="code-btn"><span class="ico2"></span>
<input class="input-block-level" placeholder="密码" name="Admin[password]" id="Admin_password" type="password" maxlength="250" />
<p><button class="btn btn-primary" type="button" onclick="GetUID()">登录</button></p>
</div>
</div>
</body>
</html>
<script language="javascript" runat="server" type="text/javascript">
function OnPageLoad () {
var browser = DetectBrowser();
if ( browser == "Unknown" ) {
alert("不支持该浏览器, 如果您在使用傲游或类似浏览器,请切换到IE模式");
return ;
}
//createElementIA300() 对本页面加入IA300插件
createElementIA300();
//DetectActiveX() 判断IA300Clinet是否安装
var create = DetectIA300Plugin();
if ( create == false ) {
alert("插件未安装,请安装客户端插件");
return true;
}
//setTimeout("GetUID()",300);
}
function GetUID () {
var person_tel = $('#User_person_tel').val();
var code = $('#code').val();
var pwd = $('#Admin_password').val();
var reg = /^1[3456789]\d{9}$/;
if(person_tel=='' ||person_tel.length!=11 ||!reg.test(person_tel)){
alert("手机号有误!");
return false;
}
if(code=='' ||code.length!=5){
alert("验证码有误!");
return false;
}
if(pwd==''){
alert("请输入密码!");
return false;
}
//使用ajax将手机号 密码 传给后台PHP做处理
$.post("<?php echo Url::toRoute('validatelogin')?>",{"User_person_tel":person_tel,"code":code,"User_Pass":pwd,"_csrf":"<?php echo Yii::$app->request->csrfToken; ?>"},function(data){
if(data['status'] == 300){
alert(data['msg']);
return false;
}
if ( data['status'] == 400 ) {
alert ("非法登录 或者 密码错误");
return false;
}
if ( data['status'] == 500 ) {
alert ( "限制登录" ) ;
return false;
}
if ( data['status']==200 ) {
// alert('登录成功');
window.location = data['url'];
}
},'json');
}
//获取验证码按钮
var iTime = 59;
var Account;
$('#code-btn').click(function(){
var person_tel = $('#User_person_tel').val();
var reg = /^1[3456789]\d{9}$/;
if (person_tel == "" || person_tel.length != 11 || !reg.test(person_tel)) {
alert('手机号有误!');
return false;
}else{
RemainTime();
}
$.post("<?php echo Url::toRoute('validatesendmsg')?>",{"User_person_tel":person_tel,"_csrf":"<?php echo Yii::$app->request->csrfToken; ?>"},function(data){
//等于200表示发送短信成功
if ( data['status']==201 ) {
alert(data['message']);
return true;
//等于500表示发送短信失败
}else{
alert(data['message']);
return false;
}
},'json');
});
//实现倒计时
function RemainTime() {
document.getElementById('code-btn').disabled = true;
var iSecond, sSecond = "", sTime = "";
if (iTime >= 0) {
iSecond = parseInt(iTime % 60);
iMinute = parseInt(iTime / 60)
if (iSecond >= 0) {
if (iMinute > 0) {
sSecond = iMinute + "分" + iSecond + "秒";
} else {
sSecond = iSecond + "秒";
}
}
sTime = sSecond;
if (iTime == 0) {
clearTimeout(Account);
sTime = '重新取验证码';
iTime = 59;
document.getElementById('code-btn').disabled = false;
} else {
Account = setTimeout("RemainTime()", 1000);
iTime = iTime - 1;
}
} else {
sTime = '没有倒计时';
}
$('#code-btn').val(sTime);
};
function SetHome(url){
if (document.all) {
document.body.style.behavior='url(#default#homepage)';
document.body.setHomePage(url);
} else {
alert("您好,您的浏览器不支持自动设置页面为首页功能,请您手动在浏览器里设置该页面为首页!");
}
}
</script>
4.登录控制器
<?php
namespace app\modules\admin\controllers;
use Yii;
use yii\web\Controller;
use app\models\OaUser;
use yii\helpers\Url;
/**
* Default controller for the `admin` module
*/
class AuthoController extends Controller
{
public $layout = false;
public function actionLogin(){
return $this->render('login');
}
public function actionValidatesendmsg(){
$phoneNum = Yii::$app->request->post("User_person_tel");
require_once Yii::$app->basePath .'/vendor/phpunit/phpunit/src/Extensions/duanxin/send/sendSMS.php';
$sendSMSClass = new \sendSMS();
// 随机验证码
$smsword = rand(10000,99999);
$sendsms = $sendSMSClass->sendTemplateSMS($phoneNum, array($smsword, '60'), "54874");
if(!empty($sendsms)){
setcookie('phonesmsword', $smsword);
exit(json_encode(array('status'=>201, 'message'=>'短信验证码已发送')));
}else{
exit(json_encode(array('status'=>500, 'message'=>'短信验证码发送失败')));
}
}
// 登录验证页面
public function actionValidatelogin(){
//验证验证码是否有误
if(Yii::$app->request->post("code")!==$_COOKIE['phonesmsword']){
return json_encode(array('status'=>300,'msg'=>'验证码错误!'));exit();
}else{
$data = OaUser::find()->where(['User_person_tel'=>Yii::$app->request->post("User_person_tel"),'User_Pass'=>md5(Yii::$app->request->post("User_Pass"))])->one();
$str = "本次登录的时间是:".date('Y-m-d h:i:s',time()).","."手机号是:".Yii::$app->request->post('User_person_tel').","."登录IP是:".$_SERVER['REMOTE_ADDR'];
file_put_contents(Yii::$app->basePath .'/jifen_admin_login_log/jifen_admin_login_log.log', '----' . date('Y-m-d H:i:s') . '----' . $str . "\r\n", FILE_APPEND);
if(!empty($data)) {
if ( $data['User_State']==0 ) {
setcookie ( "AMUID" , $data["User_ID"] , time()+3600*24 , "/" ) ;
// setcookie ( "ULEVEL" , $data["User_Level"] , time()+3600*24 , "/" ) ;
// setcookie ( "UDEPA" , $data["User_Depa"] , time()+3600*24 , "/" ) ;
return json_encode(array('status'=>200, 'url'=>Url::toRoute(['index/index']) ));
} else {
return json_encode(array('status'=>500));
// 离职
// echo "-2" ;
}
} else {
echo json_encode(array('status'=>400 ));
// echo "-1" ;
// 非法KEY
}
}
}
记录工作+学习的点滴,您的点赞是我前进的动力,加油!加油!