前言
從這里就要涉及到數(shù)據(jù)庫了,比較重要。
邏輯大致是這樣的医吊。
生成數(shù)據(jù)->將生成的數(shù)據(jù)存到數(shù)據(jù)庫->用戶在前端輸入數(shù)據(jù)->前端驗證->將此數(shù)據(jù)與后端存放的數(shù)據(jù)進行匹配
圖片驗證碼
- 生成數(shù)據(jù)
1.首先在app\目錄下新建Tool文件夾再在Tool下新建Vaildate文件夾,再在Validate下新建ValidateCode.php然后在網上查找生成圖片驗證碼的代碼將代碼放到Vaildate.php下
注意命名空間,主要類名要和文件名一致诵棵。如圖
Paste_Image.png
2.在app\Http\Controllers\下新建Service文件夾,在Service下新建ValidateCodeController.php 文件
代碼如下
<?php
namespace App\Http\Controllers\Service;
use App\Http\Controllers\Controller;
use App\Tool\Validate\ValidateCode;
use Illuminate\Http\Request;
class ValidateCodeController extends Controller
{
//圖片驗證碼
public function create(Request $request){
$validateCode = new validateCode;
$request->session()->put('validate_code', $validateCode->getCode());//將驗證碼保存到session中
return $validateCode->doimg();
}
}
3.在app\Http\routes.php中為生成圖片驗證碼的函數(shù)添加路由祝旷。
代碼如下
Route::group(['prefix' => 'service'], function () {
Route::get('validatecode/', 'Service\ValidateCodeController@create');
});
4.現(xiàn)在就可以在前端看到生成的圖片驗證碼了履澳。注意下面兩處你是否相同
Paste_Image.png
Paste_Image.png
數(shù)據(jù)庫方面
這里好像不需要,這里是把圖片驗證碼存放到session中怀跛,然后從session中提取驗證距贷。驗證數(shù)據(jù)
驗證數(shù)據(jù)先從session中提取然后進行和輸入的數(shù)據(jù)進行匹配,由于只是一個判斷語句放在其他函數(shù)中的這里我只把對應的代碼貼出來敌完。大家理解就行 后面還會提
//判斷
//驗證碼判斷
$validate_code_session = $request->session()->get('validate_code','');
if($validate_code_session != $validate_code) {
$m3_result->status = 1;
$m3_result->message = '驗證碼不正確';
return $m3_result->toJson();
}