时时商务社区
标题:
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
[打印本页]
作者:
网络通达
时间:
2018-2-14 05:28
本文实例讲述了php+redis实现注册、删除、编辑、分页、登录、关注等功能。分享给大家供大家参考,具体如下:
主要界面
连接redis
redis.php
connect("localhost",6379);
//var_dump($a);
//授权
$redis->auth("107lab");
注册界面
add.php
用户名:
密码:
年龄:
注册实现
reg.php
incr("userid");//设置自增id,相当于主键
$redis->hMset("user:".$uid,array("uid"=>$uid,"username"=>$username,"password"=>$password,"age"=>$age));//用hash类型存储用户比较方便
//将用户id存入一个链表中,便于统计数据
$redis->rpush("uid",$uid);
//将用id存入以用户名为键的字符类型中,便于查看用户是否存在。
$redis->set("username:".$username,$uid);
header('location:list.php');
列表页面
list.php
注册
get("auth:".$_COOKIE['auth']);
$name = $redis->hget("user:".$id,"username");
?>
欢迎您:
退出
登录
lsize("uid");//获取链表的长度
//echo $count;
//页大小
$page_size = 3;
//当前页码
$page_num=(!empty($_GET['page']))?$_GET['page']:1;
//页总数
$page_count = ceil($count/$page_size);
$ids = $redis->lrange("uid",($page_num-1)*$page_size,(($page_num-1)*$page_size+$page_size-1));
//var_dump($ids);
foreach($ids as $v){
$data[]=$redis->hgetall("user:".$v);
}
/*
//以下为最初想到的分页处理,放入一个数组中,根据uid的最大值来当总个数,但是删除个别用户以后,uid不会变小,所以建议用链表,因为他有个lsize函数可以求出链表长度
//根据userid获取所有用户
for($i=1;$iget("userid"));$i++){
$data[]=$redis->hgetall("user:".$i);
}
//过滤空值
$data = array_filter($data);
//var_dump($data);
*/
?>
uid
username
age
操作
删除
编辑
加关注
=1){ ?>
上一页
下一页
首页
尾页
当前页
总共页
总共个用户
[table]
我关注了谁
smembers("user:".$id.":following");
foreach($data as $v){
$row = $redis->hgetall("user:".$v);
?>
[tr]
[td][/td]
[td][/td]
[td][/td]
[/tr]
[table]
[table]
我的粉丝
smembers("user:".$id.":followers");
foreach($data as $v){
$row = $redis->hgetall("user:".$v);
?>
[tr]
[td][/td]
[td][/td]
[td][/td]
[/tr]
[table]
退出
logout.php
登录
login.php
get("username:".$username);
if(!empty($id)){
$password = $redis->hget("user:".$id,"password");
if(md5($pass) == $password){
$auth = md5(time().$username.rand());
$redis->set("auth:".$auth,$id);
setcookie("auth",$auth,time()+86400);
header("location:list.php");
}
}
?>
用户名:
密码:
删除
del.php
hget("user:".$id,"username");
$a=$redis->del("user:".$uid);
$redis->del("username:".$username);
$redis->lrem("uid",$uid);
//var_dump($a);
header("location:list.php");
编辑界面
mod.php
hgetall("user:".$uid);
?>
" name="uid">
用户名:
">
年龄:
">
编辑功能
doedit.php
hmset("user:".$uid,array("username"=>$username,"age"=>$age));
if($a){
header("location:list.php");
}else{
header("location:mod.php?id=".$uid);
}
加关注
addfans.php
sadd("user:".$uid.":following",$id);
$redis->sadd("user:".$id.":followers",$uid);
header("location:list.php");
更多关于PHP相关内容感兴趣的读者可查看本站专题:《
php+redis数据库程序设计技巧总结
》、《
PHP扩展开发教程
》、《
php+mysql数据库操作入门教程
》、《
php+mysqli数据库程序设计技巧总结
》、《
php面向对象程序设计入门教程
》、《
PHP网络编程技巧总结
》及《
php常见数据库操作技巧汇总
》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:
降低PHP Redis内存占用
php中Redis的应用--消息传递
PHP基于Redis消息队列实现发布微博的方法
PHP实现电商订单自动确认收货redis队列
php实现的redis缓存类定义与使用方法示例
详解thinkphp+redis+队列的实现代码
PHP使用Redis实现防止大并发下二次写入的方法
ubuntu 系统上为php加上redis 扩展的实现方法
欢迎光临 时时商务社区 (http://bbs.4435.cn/)
Powered by Discuz! X3.2