redis应用之——注册、登录

字段设计:

#设置登录帐号:

set user:1:account zhangsan

set user:2:account lisi


#设置用户名:

set user:1:name 张三

set user:2:name 李四


#设置email:

set user:1:email [email protected]

扫描二维码关注公众号,回复: 113236 查看本文章

set user:2:email [email protected]


#设置密码:

set user:1:passwd 123456

set user:2:passwd 666666


#为了能根据唯一的帐号、唯一的邮箱找到具体的人(包括姓名密码等)再设置:

set zhangsan:uid 1

set lisi:uid 2

set [email protected]:uid 1

set [email protected]: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);
~

                


猜你喜欢

转载自blog.51cto.com/5660061/2113025