public function index(){ //如今時間 $time=date('Y-m-d H:i:s',time()); return view('home.login.index',['time'=>$time]); }
<!-- Bootstrap 3.3.7 --> <link rel="stylesheet" href="{{URL::asset('AdminLTE-2.4.15')}}/bower_components/bootstrap/dist/css/bootstrap.min.css"> <!-- Font Awesome --> <link rel="stylesheet" href="{{URL::asset('AdminLTE-2.4.15')}}/bower_components/font-awesome/css/font-awesome.min.css">
|||-beginphp
視圖:form action="/loginCheck" method="post" 路由:Route::post('/loginCheck',"Home\Login\LoginController@check"); 訪問時候的瀏覽器地址:http://legend3.com/loginCheck
|||-endcss
第一:(必作)定義一個table屬性,值是不要前綴的表名,若是不指定則使用類名的複數形式做爲表名。若是模型爲Member 模型在不指定table屬性的狀況下,其默認會去找members表。修飾詞:protected 第二:(可選)定義$primarykey屬性,值是主鍵名稱,若是須要使AR模式的find方法,則可能須要指定主鍵(Model:find(n)),在主鍵字段不是id的時候則須要指定主鍵。修飾詞: protected 第三:(可選)定義$timestamps 屬性,值是false,若是不設置爲false,則默認會操做表中的created at和updated at字段,咱們表中通常沒有這兩個字段,因此設置爲false,表示不要操做這兩個字段。修飾詞:public 第四:(可選)定義Sflable 屬性,表示使用模型插入數據時,容許插入到數據庫的字段信息。修飾詞:protected <?php namespace App\Models\Login; use Illuminate\Database\Eloquent\Model; class Login extends Model { //定義模型關聯的數據表(一個模型只操做一個表) protected $table='member'; //定義主鍵(可選) protected $primarykey='id'; //定義禁止操做時間 public $timestamps= false; //設置容許寫入的數據字段 protected $fillable=['id','name','age','email']; }
控制器 //處理登陸操做 public function check(){ $a=\App\Models\Login\Login::testModel(); dd($a); dd('這是處理登陸的控制器'); } 模型 class Login extends Model { //定義模型關聯的數據表(一個模型只操做一個表) protected $table='member'; //定義主鍵(可選) protected $primarykey='id'; //定義禁止操做時間 public $timestamps= false; //設置容許寫入的數據字段 protected $fillable=['id','name','age','email']; public static function testModel(){ $a=11; return $a; } }
// 插入操做 admin/admin post public function store(Request $request){ // 直接把字符串數組化 parse_str($_POST['str'],$arr); // 表單驗證的規則 $rules=[ 'name' => 'required|unique:admin|between:6,12', 'pass' => 'required|same:repass|between:6,12', ]; // 表單驗證的提示信息 $message=[ "name.required"=>"請輸入用戶名", "pass.required"=>"請輸入密碼", "name.unique"=>"用戶名已存在", "pass.same"=>"兩次密碼不一致", "pass.between"=>"密碼長度不在6-12位之間", "name.between"=>"用戶名長度不在6-12位之間", ]; // 使用laravel的表單驗證 $validator = \Validator::make($arr,$rules,$message); // 開始驗證 if ($validator->passes()) { // 驗證經過添加數據庫 unset($arr['repass']); $arr['pass']=\Crypt::encrypt($arr['pass']); $arr['time']=time(); // 插入數據庫 if (\DB::table("admin")->insert($arr)) { return 1; }else{ return 0; } }else{ // 具體查看laravel的核心類 return $validator->getMessageBag()->getMessages(); } }
use Illuminate\Http\Request; //處理登陸操做 public function check(Request $request){ $phone=$request->input('phone'); $password=$request->input('password'); dd($request->all()); $a=\App\Models\Login\Login::testModel(); dd($a); dd('這是處理登陸的控制器'); }
視圖js
//獲取手機驗證碼
function get_phone_code(){
console.log('11');
let str=1;
$.post("/phoneCode", {'str':str,'_token':'{{csrf_token()}}'} ,function (data) {
});
}
控制器
public function phone_code(Request $request){
dd($request->all());
}
結果
array:2 [
"str" => "1"
"_token" => "DeVbd2nwXrykfxg09sRdX9L1xNpsuzDfBIGtQXrb"
]
控制器 //獲取手機驗證碼操做 public function phone_code(Request $request){ $back_data=[]; $back_data['operation_num']=0;//表示鏈接失敗 //dd($request->all()); $phone_num=$request->input('u_phone'); $captcha=$request->input('captcha'); //一、判斷字符驗證碼是否正確,正確的話才發送手機驗證碼 $regcaptcha=session('regcaptcha'); $request->session()->reflash(); $captcha=strtolower($captcha);if($captcha!=strtolower($regcaptcha)){ //驗證碼錯誤 $back_data['operation_num']=11;//表示驗證碼錯誤 return $back_data; }else{ $back_data['operation_num']=2;//表示手機驗證碼發送成功 } return $back_data; } 視圖 //獲取手機驗證碼 function get_phone_code(){ let u_phone=$('#u_phone').val(); let captcha=$('#captcha').val(); $.post("/phoneCode", {'u_phone':u_phone,'captcha':captcha,'_token':'{{csrf_token()}}'} ,function (data) { console.log(data); if(parseInt(data.operation_num)==2){ alert('短信發送成功'); }else{ if(parseInt(data.operation_num)==0) alert('鏈接失敗'); if(parseInt(data.operation_num)==11) alert('驗證碼錯誤'); if(parseInt(data.operation_num)==12) alert('短信驗證碼發送錯誤'); } }); }
$request->session()->flash('regcaptcha', $phrase); //存儲驗證碼
$request->session()->reflash();若是你須要在更多的請求中使用到該一次性數據,你能夠使用 reflash 方法,該方法會將全部一次性請求保留到下一次請求。
$request->session()->forget('key');forget 方法會從 Session 中刪除指定數據前端
function layer_alert_5(str){ layer.msg(str, { anim: 6, time: 3000 },function(){ //關閉後的操做 }); } 使用 layer_alert_5('短信發送成功!');
//步驟一:驗證輸入的數據 $rules=[ 'u_phone' => 'required|unique:user|between:10,15', 'u_password' => 'required|same:u_re_password|between:6,20', 'u_email' => 'required|email', ]; $message=[ "u_phone.required"=>"請輸入大陸手機號", "u_phone.unique"=>"用戶名已存在", "u_phone.between"=>"手機號碼位數不對", "u_password.required"=>"請輸入密碼", "u_password.same"=>"兩次密碼不一致", "u_password.between"=>"密碼長度不在6-20位之間", "u_email.required"=>"請輸入郵箱", ]; $validator = \Validator::make($dataIn,$rules,$message); if ($validator->passes()) { unset($dataIn['_token']); unset($dataIn['u_re_password']); unset($dataIn['captcha']); unset($dataIn['phone_code']); $dataIn['u_password']=\Crypt::encrypt($dataIn['u_password']); $dataIn['u_create_at']=time(); $dataIn['u_update_at']=time(); if (\DB::table("user")->insert($dataIn)) { return 1; }else{ return 0; } }else{ // 具體查看laravel的核心類 return $validator->getMessageBag()->getMessages(); }
控制器:with向視圖傳遞信息 return back()->withInput()->with('error','驗證碼錯誤!'); 視圖:用session獲取信息 @if(session('error')) <div class="alert alert-danger">{{session('error')}}</div> @endif