php redis 用户注册,php+redis实现注册、删除、编辑、分页、登录、关注等功能,...

该文章详细介绍了如何使用PHP结合Redis实现用户注册、删除、编辑、分页、登录以及关注等核心功能。通过Redis的哈希类型存储用户信息,链表统计用户数量,集合处理关注关系,并利用Redis的 incr 和 lrange 方法实现用户ID自增和分页显示。此外,还涉及到了登录验证、用户权限判断以及页面导航的实现。
摘要由CSDN通过智能技术生成

php+redis实现注册、删除、编辑、分页、登录、关注等功能,

本文实例讲述了php+redis实现注册、删除、编辑、分页、登录、关注等功能。分享给大家供大家参考,具体如下:

主要界面

ed7f529d14865ebe3b09a0f5e3239820.pngwAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

连接redis

redis.php

1 <?php2 //实例化

3 $redis = newRedis();4 //连接服务器

5 $a=$redis->connect("localhost",6379);6 //var_dump($a);7 //授权

8 $redis->auth("107lab");

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

注册界面

add.php

1

2 用户名:

3 密码:

4 年龄:

5

6

7

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

注册实现

reg.php

1 <?php2 require("redis.php");3 $username = $_POST['username'];4 $password = md5($_POST['password']);5 $age = $_POST['age'];6 //echo $username.$password.$age;

7 $uid = $redis->incr("userid");//设置自增id,相当于主键

8 $redis->hMset("user:".$uid,array("uid"=>$uid,"username"=>$username,"password"=>$password,"age"=>$age));//用hash类型存储用户比较方便9 //将用户id存入一个链表中,便于统计数据

10 $redis->rpush("uid",$uid);11 //将用id存入以用户名为键的字符类型中,便于查看用户是否存在。

12 $redis->set("username:".$username,$uid);13 header('location:list.php');14

15

列表页面

list.php

1 注册

2 <?php3 require("redis.php");4 if(!empty($_COOKIE['auth'])){5 $id = $redis->get("auth:".$_COOKIE['auth']);6 $name = $redis->hget("user:".$id,"username");7 ?>

8 欢迎您:<?php echo $name;?> 退出

9 <?php } else { ?>

10 登录

11 <?php } ?>

12 <?php13 require("redis.php");14 //用户总数

15 $count = $redis->lsize("uid");//获取链表的长度16 //echo $count;17 //页大小

18 $page_size = 3;19 //当前页码

20 $page_num=(!empty($_GET['page']))?$_GET['page']:1;21 //页总数

22 $page_count = ceil($count/$page_size);23 $ids = $redis->lrange("uid",($page_num-1)*$page_size,(($page_num-1)*$page_size+$page_size-1));24 //var_dump($ids);

25 foreach($ids as $v){26 $data[]=$redis->hgetall("user:".$v);27 }28 /*

29 //以下为最初想到的分页处理,放入一个数组中,根据uid的最大值来当总个数,但是删除个别用户以后,uid不会变小,所以建议用链表,因为他有个lsize函数可以求出链表长度30 //根据userid获取所有用户31 for($i=1;$i<=($redis->get("userid"));$i++){32 $data[]=$redis->hgetall("user:".$i);33 }34 //过滤空值35 $data = array_filter($data);36 //var_dump($data);37 */

38 ?>

39

40

41

uid

42

username

43

age

44

操作

45

46 <?php foreach($data as $v){ ?>

47

48

<?php echo $v['uid']?>

49

<?php echo $v['username']?>

50

<?php echo $v['age']?>

51

52 删除

53 编辑

54 <?php if(!empty($_COOKIE['auth']) && $id != $v['uid']){ ?>

55 加关注

56 <?php } ?>

57

58

59 <?php } ?>

60

61

62 <?php if(($page_num-1)>=1){ ?>

63 上一页

64 <?php } ?>

65 <?php if(($page_num+1)<=$page_count){ ?>

66 下一页

67 <?php } ?>

68 首页

69 尾页

70 当前<?php echo $page_num;?>页71 总共<?php echo $page_count;?>页72 总共<?php echo $count;?>个用户73

74

75

76

77

78

我关注了谁

79 <?php80 $data = $redis->smembers("user:".$id.":following");81 foreach($data as $v){82 $row = $redis->hgetall("user:".$v);83 ?>

84

85

<?php echo $row['uid'];?>

86

<?php echo $row['username'];?>

87

<?php echo $row['age'];?>

88

89 <?php } ?>

90

91

92

我的粉丝

93 <?php94 $data = $redis->smembers("user:".$id.":followers");95 foreach($data as $v){96 $row = $redis->hgetall("user:".$v);97 ?>

98

99

<?php echo $row['uid'];?>

100

<?php echo $row['username'];?>

101

<?php echo $row['age'];?>

102

103 <?php } ?>

104

1381321.html<?phpsetcookie ("auth","",time()-1);header("location:list.php");

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

登录

login.php

1 <?php2 require("redis.php");3 $username = $_POST['username'];4 $pass = $_POST['password'];5 //根据注册时存储的以用户名为键的字符类型中查找用户id

6 $id = $redis->get("username:".$username);7 if(!empty($id)){8 $password = $redis->hget("user:".$id,"password");9 if(md5($pass) == $password){10 $auth = md5(time().$username.rand());11 $redis->set("auth:".$auth,$id);12 setcookie("auth",$auth,time()+86400);13 header("location:list.php");14 }15 }16 ?>

17

18 用户名:

19 密码:

20

21

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

删除

del.php

$username = $redis->hget("user:".$id,"username");$a=$redis->del("user:".$uid);$redis->del("username:".$username);$redis->lrem("uid",$uid);//var_dump($a);

header("location:list.php");

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

编辑界面

mod.php

1 <?php2 require("redis.php");3 $uid = $_GET['id'];4 $data=$redis->hgetall("user:".$uid);5 ?>

6

7

8 用户名:

9 年龄:

10

11

12

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

编辑功能

doedit.php

1 <?php2 require('redis.php');3 $uid = $_POST['uid'];4 $username = $_POST['username'];5 $age = $_POST['age'];6 $a=$redis->hmset("user:".$uid,array("username"=>$username,"age"=>$age));7 if($a){8 header("location:list.php");9 }else{10 header("location:mod.php?id=".$uid);11 }

加关注

addfans.php

1 <?php2 //关注功能,建议用集合实现,因为集合元素唯一,并且可以容易求出两个用户粉丝之间交集与差集,进而进行好友推荐功能

3 $id = $_GET['id'];4 $uid = $_GET['uid'];5 require("redis.php");6 $redis->sadd("user:".$uid.":following",$id);7 $redis->sadd("user:".$id.":followers",$uid);8 header("location:list.php");

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

https://i-blog.csdnimg.cn/blog_migrate/18b10ed1e36e89a21e4b38b98e684e61.pngwww.dengb.comtruehttps://i-blog.csdnimg.cn/blog_migrate/18b10ed1e36e89a21e4b38b98e684e61.pngTechArticlephp+redis实现注册、删除、编辑、分页、登录、关注等功能, 本文实例讲述了php+redis实现注册、删除、编辑、分页、登录、关注等功能。分享...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值