分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

php+redis实战留言板(todolist)与互粉功能

发布时间:2023-09-06 01:43责任编辑:赖小花关键词:redis留言板

目的:通过留言板(todolist)与互粉功能,掌握php操作redis的方法

相关数据操作命令

1,keys * 查看数据库所有的key

2,type + key: 如 type uid     查看数据key的类型

3,批量删除key, 如redis-cli keys "auth:*" | xargs redis-cli del   这行命令在linux终端执行, 删除 auth: 开头的所有key

4。。。。其他基本常用命令, 参照百度或者redis手册

0,连接redis

1 <?php2 3 $redis = new Redis();4 $redis->connect( "127.0.0.1", 6379 );5 $redis->auth( "ghostwu" );6 7 ?>

1、注册功能( reg.php )

 1 <!doctype html> 2 <html> 3 ????<head> 4 ????????<meta charset="utf-8" /> 5 ????????<title>用户注册页面</title> 6 ????</head> 7 ????<body> 8 ????????<h3>用户注册</h3> 9 ????????<form action="do_reg.php" method="post">10 ????????????<p>11 ????????????????用户名: <input type="text" name="user" />12 ????????????</p>13 ????????????<p>14 ????????????????密码:<input type="password" name="pwd" />15 ????????????</p>16 ????????????<p>17 ????????????????年龄: <input type="text" name="age" />18 ????????????</p>19 ????????????<p>20 ????????????????<input type="submit" value="注册" />21 ????????????????<input type="reset" value="重置" />22 ????????????</p>23 ????????</form>24 ????</body>25 </html>

2、处理注册( do_reg.php )

 1 <?php 2 require "./redis_connect.php"; 3 ?4 $user = $_POST[‘user‘]; 5 $pwd = md5( $_POST[‘pwd‘] ); 6 $age = $_POST[‘age‘]; 7 ?8 $uid = $redis->get( "username:" . $user ); 9 if( empty( $uid ) ) {10 ????$uid = $redis->incr( "userid" );11 ????$redis->hMset( "user:" . $uid, array( "uid" => $uid, "user" => $user, "pwd" => $pwd, "age" => $age ) );12 ????$redis->rpush( "uid", $uid );13 ????$redis->set( "username:" . $user, $uid );14 ????header( "Location:./list.php" );15 ????exit();16 }else {17 ????die( "user already exists " );18 }19 20 ?>

3,登录(login.php)

 1 <!doctype html> 2 <html> 3 ????<head> 4 ????????<meta charset="utf-8" /> 5 ????????<title>用户登录页面</title> 6 ????</head> 7 ????<body> 8 ????????<?php 9 ????????????require "./redis_connect.php";10 ????????????if( isset( $_POST[‘login‘] ) || $_POST[‘login‘] == ‘登录‘ ) {11 ????????????????$user = $_POST[‘user‘];12 ????????????????$pwd = $_POST[‘pwd‘];13 ????????????????$uid = $redis->get( "username:" . $user );14 ????????????????if( !empty( $uid ) ) {15 ????????????????????$db_pwd = $redis->hget( "user:" . $uid, "pwd" );16 ????????????????????if( md5( $pwd ) == $db_pwd ) {17 ????????????????????????$auth = md5( time() . $user . rand() );18 ????????????????????????$redis->set( "auth:" . $auth, $uid );19 ????????????????????????setcookie( "auth", $auth, time() + 86400 );20 ????????????????????????header( "Location:./list.php" );21 ????????????????????}else {22 ????????????????????????echo "<script>alert(‘用户密码错误‘);</script>";23 ????????????????????}24 ????????????????}else {25 ????????????????????echo "<script>alert(‘该用户不存在‘);</script>";26 ????????????????}27 ????????????}28 ?????????>29 ????????<h3>用户登录</h3>30 ????????<form action="" method="post">31 ????????????<p>32 ????????????????用户名: <input type="text" name="user" />33 ????????????</p>34 ????????????<p>35 ????????????????密码:<input type="password" name="pwd" />36 ????????????</p>37 ????????????<p>38 ????????????????<input type="submit" value="登录" name="login" />39 ????????????</p>40 ????????</form>41 ????</body>42 </html>

4,列表页( list.php )

 ?1 <meta charset="utf-8" /> ?2 <?php ?3 require( "./redis_connect.php" ); ?4 ?> ?5 <a href="./reg.php">注册</a> ?6 <?php ?7 ????if( !empty( $_COOKIE[‘auth‘] ) ) { ?8 ????????$login_uid = $redis->get( "auth:" . $_COOKIE[‘auth‘] ); ?9 ????????$userName = $redis->hget( "user:" . $login_uid, "user" ); 10 ?> 11 ????欢迎您:<?php echo $userName; ?> | <a href="./logout.php">退出</a> 12 <?php 13 ????}else { 14 ?> 15 ????<a href="./login.php">登录</a> 16 <?php 17 ????} 18 ?> 19 <?php 20 ????$total = $redis->lsize( "uid" ); 21 ????$pageSize = 3; 22 ????$p = isset( $_GET[‘p‘] ) ? $_GET[‘p‘] : 1; 23 ????$page = ceil( $total / $pageSize ); ????24 ????$uids = $redis->lrange( "uid", ( $p - 1 ) * $pageSize, ( ( $p - 1 ) * $pageSize + $pageSize - 1 ?) ); 25 ????$userList = array(); 26 ????foreach( $uids as $uid ) { 27 ????????$userList[] = $redis->hgetall( "user:" . $uid ); 28 ????} 29 ?> 30 ?31 <h3>列表数据</h3> 32 <table> 33 ????<tr> 34 ????????<th>uid</th> 35 ????????<th>用户名</th> 36 ????????<th>年龄</th> 37 ????????<th>操作</th> 38 ????</tr> 39 ????<?php 40 ????????foreach( $userList as $user ) { 41 ?????> 42 ????????<tr> 43 ????????????<td><?php echo $user[‘uid‘]; ?></td> 44 ????????????<td><?php echo $user[‘user‘]; ?></td> 45 ????????????<td><?php echo $user[‘age‘]; ?></td> 46 ????????????<td> 47 ????????????????<a href="delete.php?uid=<?php echo $user[‘uid‘]; ?>">删除</a> 48 ????????????????<a href="edit.php?uid=<?php echo $user[‘uid‘]; ?>">修改</a> 49 ????????????????<?php 50 ????????????????????if( !empty( $_COOKIE[‘auth‘] ) && ( $login_uid != $user[‘uid‘] ) ) { 51 ?????????????????> 52 ????????????????????????<a href="./do_fans.php?login_id=<?php echo $login_uid; ?>&uid=<?php echo $user[‘uid‘]; ?>">关注</a> 53 ????????????????<?php 54 ????????????????????} 55 ?????????????????> 56 ????????????</td> ????57 ????????</tr> 58 ????<?php 59 ????????} 60 ?????> 61 ????????<!--分页开始--> ????62 ????????<tr> 63 ????????????<td colspan="4"> 64 ????????????????<?php 65 ????????????????????for( $i = 1; $i <= $page; $i++ ) { 66 ?????????????????> 67 ????????????????????????<a href="?p=<?php echo $i; ?>"><?php echo $i; ?></a> 68 ????????????????<?php 69 ????????????????????} 70 ?????????????????> ????71 ????????????</td> ????????72 ????????</tr> ????73 </table> 74 ?75 <h3>我关注了谁</h3> 76 <table> 77 ????<tr> 78 ????????<th>uid</th> 79 ????????<th>用户名</th> 80 ????????<th>年龄</th> 81 ????</tr> 82 ????<?php 83 ????????$myWatchIds = $redis->smembers( "user:" . $login_uid . ":watch" ); 84 ????????foreach( $myWatchIds as $wId ){ 85 ????????????$watchList = $redis->hgetall( "user:" . $wId ); 86 ?> 87 ????<tr> 88 ????????<td><?php echo $watchList[‘uid‘]; ?></td> 89 ????????<td><?php echo $watchList[‘user‘]; ?></td> 90 ????????<td><?php echo $watchList[‘age‘]; ?></td> 91 ????</tr> 92 <?php 93 ????????} 94 ?????> 95 </table> 96 <h3>我的fans</h3> 97 <table> 98 ????<tr> 99 ????????<th>uid</th>100 ????????<th>用户名</th>101 ????????<th>年龄</th>102 ????</tr>103 ????<?php104 ????????$myFlowerIds = $redis->smembers( "user:" . $login_uid . ":flowers" );105 ????????foreach( $myFlowerIds as $fId ){106 ????????????$flowerList = $redis->hgetall( "user:" . $fId );107 ?>108 ????<tr>109 ????????<td><?php echo $flowerList[‘uid‘]; ?></td>110 ????????<td><?php echo $flowerList[‘user‘]; ?></td>111 ????????<td><?php echo $flowerList[‘age‘]; ?></td>112 ????</tr>113 <?php114 ????????}115 ?????>116 </table>

5,编辑 ( edit.php)

 1 <meta charset="utf-8" /> 2 <?php 3 ????require "./redis_connect.php"; 4 ????$uid = intval( $_GET[‘uid‘] ); 5 ????if( empty( $uid ) ){ 6 ????????header( "Location:./list.php" ); 7 ????????exit(); 8 ????} 9 ????$userInfo = $redis->hgetall( "user:" . $uid );10 ?>11 12 <form action="do_edit.php" method="post">13 ????<p>14 ????????用户名: <input disabled type="text" name="user" value="<?php echo $userInfo[‘user‘]; ?>" />15 ????</p>16 ????<p>17 ????????年龄:<input type="text" name="age" value="<?php echo $userInfo[‘age‘]; ?>" />18 ????</p>19 ????<p>20 ????????<input type="submit" value="修改" name="edit" />21 ????</p>22 ????<input type="hidden" value="<?php echo $userInfo[‘uid‘]; ?>" name="uid" />23 </form>

6,处理更新( do_edit.php )

 1 <?php 2 ????require( "./redis_connect.php" ); 3 ????$uid = intval( $_POST[‘uid‘] ); 4 ????$age = $_POST[‘age‘]; 5 ?6 ????if( empty( $uid ) ) { 7 ????????header( "Location:./edit.php" ); 8 ????????exit(); 9 ????}10 ????$res = $redis->hmset( "user:". $uid, array( "age" => $age ) );11 ????if( $res ) {12 ????????header( "Location:./list.php" );13 ????}else {14 ????????header( "Location:./edit.php" );15 ????}16 ????exit();17 ?>

7,删除(delete.php)

 1 <?php 2 ????require( "./redis_connect.php" ); 3 ????$uid = intval( $_GET[‘uid‘] ); 4 ????if( empty( $uid ) ) { 5 ????????header( "Location:./list.php" ); 6 ????????exit(); 7 ????} 8 ????$userName = $redis->get( "user:" . $uid ); 9 ????$redis->del( "user:" . $uid );10 ????$redis->del( "username:" . $userName );11 ????$redis->lrem( "uid", $uid );12 ????header( "Location:./list.php" );13 ?>

8,注销( logout.php )

1 <?php2 ????require "./redis_connect.php";3 ????if( isset( $_COOKIE[‘auth‘] ) ){4 ????????$redis->del( "auth:" . $_COOKIE[‘auth‘] );5 ????????setcookie( "auth", "", time() - 86400 );6 ????????header( "Location:./list.php" );7 ????????exit();8 ????}9 ?>

9,互粉( do_fans.php )

 1 <?php 2 ????require "./redis_connect.php"; 3 ????$login_id = intval( $_GET[‘login_id‘] ); 4 ????$uid = intval( $_GET[‘uid‘] ); 5 ????if( empty( $login_id ) || empty( $uid ) ) { 6 ????????header( "Location:./list.php" ); ????????????7 ????????exit(); 8 ????} 9 ????//当前用户关注10 ????$redis->sadd( "user:" . $login_id . ":watch", $uid );11 ????//被当前用户关注12 ????$redis->sadd( "user:" . $uid . ":flowers", $login_id );13 ????header( "Location:./list.php" ); ???????????14 ????exit();15 ?>

php+redis实战留言板(todolist)与互粉功能

原文地址:https://www.cnblogs.com/ghostwu/p/8469272.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved