当前位置:首页 > PHP教程 > php应用 > 列表

redis+php实现微博(一)注册与登录功能详解

发布:smiling 来源: PHP粉丝网  添加日期:2021-12-21 15:10:07 浏览: 评论:0 

这篇文章主要介绍了redis+php实现微博注册与登录功能,结合实例形式分析了php结合redis实现微博注册及登录相关操作步骤与实现技巧,需要的朋友可以参考下。

本文实例讲述了redis+php实现微博注册与登录功能,分享给大家供大家参考,具体如下:

(一)、微博功能概况

微博用户账号注册

微博用户登录

微博发布

添加微博好友(粉丝)

微博推送

微博冷数据写入mysql数据库

(二)、redis数据结构设计

这节分享微博用户注册与登录:

我们完全采用redis作为数据库来实现注册于登录

先来看一下redis数据结构的设计:

注册用户表:user

set global:userid

set user:userid:1:username zhangshan

set user:userid:1:password 1212121212

set user:username:zhangshan:userid 1

发布微博表:post

set post:postid:3:time timestamp

set post:postid:3:userid 5

set post:postid:3:content 测试发布哈哈哈哈

incr global:postid

set post:postid:$postid

(三)、核心代码说明

注册代码:

  1. include("function.php"); 
  2. //用户表单提交数据接收 
  3. $username = I('username'); 
  4. $password = I('password'); 
  5. $pwd = I('password2'); 
  6. if(!$username || !$password || !$pwd){ 
  7.   exit('用户名密码不能够为空~'); 
  8. if($password!=$pwd){ 
  9.   exit('两次密码输入不一致哦~'); 
  10. //连接redis调用公用方法 
  11. $r = redis_connect(); 
  12. //判断用户是否注册过 
  13. $info = $r->get("user:username:".$username.":userid"); 
  14. if($info){ 
  15.   exit('该用户已经注册过'); 
  16. //将用户数据存入redis中 
  17. $userid = $r->incr('global:userid'); 
  18. $r->set("user:userid:".$userid.":username",$username); 
  19. $r->set("user:userid:".$userid.":password",$password); 
  20. $r->set("user:username:".$username.":userid",$userid); 
  21. header("location:home.php"); 

登录代码:

  1. include("function.php"); 
  2. //如果用户已经登录调整到微博列表页面 
  3. if(isLogin()!=false){ 
  4.   header("location:home.php"); 
  5.   exit
  6. $username = I('username'); 
  7. $password = I('password'); 
  8. if(!$username || !$password){ 
  9.   exit('数据输入不完整'); 
  10. $r = redis_connect(); 
  11. $userid = $r->get("user:username:".$username.":userid"); 
  12. if(!$userid){ 
  13.   exit('用户不存在'); 
  14. $password = $r->get("user:userid:".$userid."password:".$password); 
  15. if(!password){ 
  16.   exit('密码输入错误'); 
  17. /**设置cookie登录成功**/ 
  18. setcookie('username',$username); 
  19. setcookie('userid',$userid); 
  20. header("location:home.php"); 

function文件代码:

  1. /* 
  2.  *@desc 连接redis操作方法 
  3.  */ 
  4. function redis_connect(){ 
  5.   $redis = new Redis(); 
  6.   $redis->connect('127.0.0.1',6379); 
  7.   return $redis
  8. /* 
  9.  *@desc 接收数据方法 
  10.  **/ 
  11. function I($post){ 
  12.   if(emptyempty($post)){ 
  13.    return false; 
  14.   } 
  15.   return trim($_POST[$post]); 
  16. /** 
  17.  *@desc 判断是否登录 
  18.  ***/ 
  19. function isLogin(){ 
  20.   $username = $_COOKIE['username']; 
  21.   $userid = $_COOKIE['userid']; 
  22.   if(!$username || $userid){ 
  23.     return false; 
  24.   } 
  25.   return array('userid'=>$userid,'username'=>$username); 

说明:代码写的可能比较简单,这里只是阐述实现原理。

Tags: redis+php php微博注册

分享到: