本文实例讲述了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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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" );
|
登录代码:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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文件代码:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
/*
*@desc 连接redis操作方法
*/
function redis_connect(){
$redis = new Redis();
$redis ->connect( '127.0.0.1' ,6379);
return $redis ;
}
/*
*@desc 接收数据方法
**/
function I( $post ){
if ( empty ( $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 );
}
|
说明:代码写的可能比较简单,这里只是阐述实现原理
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://www.cnblogs.com/lisqiong/p/5568064.html
相关文章
猜你喜欢
- 64M VPS建站:如何选择最适合的网站建设平台? 2025-06-10
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-25 57
-
2025-05-29 45
-
2025-05-29 71
-
2025-05-25 33
-
2025-05-29 58
热门评论