加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

redis+php实现微博一注册与登录功能详细说明

发布时间:2022-06-26 18:02:45 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了redis+php实现微博注册与登录功能,结合实例形式分析了php结合redis实现微博注册及登录相关操作步骤与实现技巧,需要的朋友可以参考下。 本文实例讲述了redis+php实现微博注册与登录功能,分享给大家供大家参考,具体如下: (一)、微博功
  这篇文章主要介绍了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
 
  (三)、核心代码说明
 
  注册代码:
 
  include("function.php");
  //用户表单提交数据接收
  $username = I('username');
  $password = I('password');
  $pwd = I('password2');
  if(!$username || !$password || !$pwd){
    exit('用户名密码不能够为空~');
  }
  if($password!=$pwd){
    exit('两次密码输入不一致哦~');
  }
  //连接redis调用公用方法
  $r = redis_connect();
  //判断用户是否注册过
  $info = $r->get("user:username:".$username.":userid");
  if($info){
    exit('该用户已经注册过');
  }
  //将用户数据存入redis中
  $userid = $r->incr('global:userid');
  $r->set("user:userid:".$userid.":username",$username);
  $r->set("user:userid:".$userid.":password",$password);
  $r->set("user:username:".$username.":userid",$userid);
  header("location:home.php");
  登录代码:
 
  include("function.php");
  //如果用户已经登录调整到微博列表页面
  if(isLogin()!=false){
    header("location:home.php");
    exit;
  }
  $username = I('username');
  $password = I('password');
  if(!$username || !$password){
    exit('数据输入不完整');
  }
  $r = redis_connect();
  $userid = $r->get("user:username:".$username.":userid");
  if(!$userid){
    exit('用户不存在');
  }
  $password = $r->get("user:userid:".$userid."password:".$password);
  if(!password){
    exit('密码输入错误');
  }
  /**设置cookie登录成功**/
  setcookie('username',$username);
  setcookie('userid',$userid);
  header("location:home.php");
  function文件代码:
 
  /*
   *@desc 连接redis操作方法
   */
  function redis_connect(){
    $redis = new Redis();
    $redis->connect('127.0.0.1',6379);
    return $redis;
  }
  /*
   *@desc 接收数据方法
   **/
  function I($post){
    if(emptyempty($post)){
     return false;
    }
    return trim($_POST[$post]);
  }
  /**
   *@desc 判断是否登录
   ***/
  function isLogin(){
    $username = $_COOKIE['username'];
    $userid = $_COOKIE['userid'];
    if(!$username || $userid){
      return false;
    }
    return array('userid'=>$userid,'username'=>$username);
  }
  说明:代码写的可能比较简单,这里只是阐述实现原理。
 
 

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读