使用redis完成註冊和登入

2021-09-02 14:05:16 字數 2250 閱讀 7398

示例圖:

前提是伺服器安裝了php-redis擴充套件,即phpnfo裡有redis模組

1 表的設計

和mysql資料庫進行對比 redis是鍵值對的儲存方式

例如 使用者表:

每個使用者儲存兩條資訊 因為註冊時要檢視乙個使用者名稱是否存在 即根據使用者名稱檢視是否含有對應的userid

user:userid:1:username   admin

user:username:admin:userid  1

index.php:

主頁 | 熱點 | 退出

register.php:

<?php 

//自增userid相當於mysql的自增主鍵

//global:userid;

//判斷cookie是否存在

if($_cookie['userid']&&$_cookie['username'])

$username = $_post['username'];

$password = $_post['password'];

$repassword = $_post['repassword'];

if(!$username)

if(!$password)

if($password!=$repassword)

$redis = new \redis();

$redis->connect('127.0.0.1',6379);

if($redis->get('user:username:'.$username.':userid'))

//寫入資料庫

$userid = $redis->incr('global:userid');

$redis->set('user:userid:'.$userid.':username',$username);

$redis->set('user:userid:'.$userid.':password',$password);

$redis->set('user:username:'.$username.':userid',$userid);

?>

login.php:

<?php 

if($_cookie['userid']&&$_cookie['username'])

$username = $_post['username'];

$password = $_post['password'];

//過濾資料

if(!$username)

if(!$password)

//驗證使用者名稱和密碼

$redis = new \redis();

$redis->connect('127.0.0.1',6379);

$ruserid = $redis->get('user:username:'.$username.':userid'); //從資料庫查使用者id

$rusername = $redis->get('user:userid:'.$ruserid.':username'); //根據id查使用者名稱

$ruserpass = $redis->get('user:userid:'.$ruserid.':password'); //根據id查密碼

if(!$ruserid||($password!=$ruserpass))

//生成cookie

setcookie('userid',$ruserid);

setcookie('username',$rusername);

header('location:home.php');

?>

logout.php:

<?php 

//清除cookie

setcookie('userid',null);

setcookie('username',null);

header('location:home.php');

?>

home.php:

<?php 

if(!$_cookie['userid']||!$_cookie['username'])

完成註冊和登入函式

對任意長度的訊息可以計算得到固定長度的唯一指紋。通常用16進製制的字串表示 常用的雜湊演算法有哪些?md5,sha1,sha224,sh256,sha384,sha512 雜湊演算法通常用在什麼場景?數字簽名 使用者密碼管理 檔案完整性檢查 防止檔案被惡意修改 md5是一種資訊摘要演算法,它可以從需...

完成登入與註冊

完成登入與註冊頁面的html css js,其中的輸入項檢查包括 使用者名稱6 12位 首字母不能是數字 只能包含字母和數字 密碼6 12位 註冊頁兩次密碼是否一致 登入html 登入 登入.css box denglu input box 登入js function fnlogin else if...

Redis註冊登入,留言

登入的html 後台php 例項化 redis new redis 建立場鏈結 redis pconnect 127.0.0.1 6379 接受傳值 uname post uname pwd post pwd 判斷為空 if empty uname empty pwd 驗證唯一性 判斷使用者名稱是否...