redis应用之——注册、登录
字段設計:
#設置登錄帳號:
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也釋放掉。
轉載于:https://blog.51cto.com/5660061/2113025
總結
以上是生活随笔為你收集整理的redis应用之——注册、登录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dataframe.sum()函数
- 下一篇: 随便谈谈C