您好,登錄后才能下訂單哦!
字段設計:
#設置登錄帳號:
set user:1:account zhangsan
set user:2:account lisi
#設置用戶名:
set user:1:name 張三
set user:2:name 李四
#設置email:
set user:1:email zhangsan@test.test
set user:2:email lisi@test.test
#設置密碼:
set user:1:passwd 123456
set user:2:passwd 666666
#為了能根據唯一的帳號、唯一的郵箱找到具體的人(包括姓名密碼等)再設置:
set zhangsan:uid 1
set lisi:uid 2
set zhangsan@test.test:uid 1
set lisi@test.test:uid 2
每注冊一個用戶將global:uid加1
incr global:uid
php代碼示例:
login.php
<?php //session存到redis。如果php.ini中沒有配置,可以在php代碼中配置: ini_set('session.save_handler', 'redis'); ini_set('session.save_path', 'tcp://127.0.0.1:6379'); session_start(); //已經登錄則跳轉到首頁 if($_SESSION['uid']){ echo 'hh'; header('Location:./index.php'); } if(!$_POST['account'] || !$_POST['passwd']){ die('請完整輸入帳號密碼'); } //連接redis $redis = new Redis(); $redis->connect('127.0.0.1',6379); $uid = $redis->get($_POST['account'].':uid'); $passwd = $redis->get('user:'.$uid.':passwd'); if(!$uid || $passwd!=$_POST['passwd']){ die('帳號或密碼錯誤'); }else{ echo '登錄成功'; } $_SESSION['uid']=$uid;
注意:可以在php.ini中配置session存放redis
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"
register.php
<?php if(!$_POST['account'] || !$_POST['passwd'] || !$_POST['passwd2']){ die('請完整輸入注冊信息'); } if($_POST['passwd'] != $_POST['passwd2']){ die('兩次密碼輸入不一致'); } if(strlen($_POST['passwd'])<6){ die('密碼不能小于6位'); } //連接redis數據庫 $redis = new Redis(); $redis->connect('127.0.0.1',6379); //查看用戶名是否已被注冊 if($redis->get($_POST['account'].':uid')){ die('該帳號已被注冊'); } //每次注冊一個用戶將global:uid增加1 $uid = $redis->incr('global:uid'); $redis->set('user:'.$uid.':account',$_POST['account']); $redis->set('user:'.$uid.':passwd',$_POST['passwd']); $redis->set($_POST['account'].':uid',$uid); ~
注意:由于cookie存在本地,所以要加點鹽(salt)。退出的時候要記得將cookie消除,還有redis中存的session也釋放掉。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。