PHP+redis方式で登録、削除、編集、ページング、ログイン、フォロー等の機能を実現
この記事では、登録、削除、編集、ページング、ログイン、フォローなどの機能を実現するためのphp+redisを主に紹介し、php+redisプロジェクトの開発で一般的に使用される登録、削除、編集、ログイン、フォローなどの機能を分析します。関連する実装スキルについては、必要な友人が参照できるようにします
この記事では、php+redis が登録、削除、編集、ページング、ログイン、フォローなどの機能を実装する方法について説明します。参考までに皆さんと共有してください。詳細は次のとおりです:
メインインターフェース
redisに接続
redis.php
<?php //实例化 $redis = new Redis(); //连接服务器 $a=$redis->connect("localhost",6379); //var_dump($a); //授权 $redis->auth("107lab");
登録インターフェース
add 。 php
<form action="reg.php" method="post"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> 年龄:<input type="text" name="age"><br> <input type="submit" value="注册"> <input type="reset" value="重填"> </form>
登録実装
reg.php
<?php require("redis.php"); $username = $_POST['username']; $password = md5($_POST['password']); $age = $_POST['age']; //echo $username.$password.$age; $uid = $redis->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
終了
logout.php<a href="add.php" rel="external nofollow" >注册</a> <?php require("redis.php"); if(!empty($_COOKIE['auth'])){ $id = $redis->get("auth:".$_COOKIE['auth']); $name = $redis->hget("user:".$id,"username"); ?> 欢迎您:<?php echo $name;?> <a href="logout.php" rel="external nofollow" >退出</a> <?php } else { ?> <a href="login.php" rel="external nofollow" >登录</a> <?php } ?> <?php require("redis.php"); //用户总数 $count = $redis->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;$i<=($redis->get("userid"));$i++){ $data[]=$redis->hgetall("user:".$i); } //过滤空值 $data = array_filter($data); //var_dump($data); */ ?> <table border=1> <tr> <th>uid</th> <th>username</th> <th>age</th> <th>操作</th> </tr> <?php foreach($data as $v){ ?> <tr> <td><?php echo $v['uid']?></td> <td><?php echo $v['username']?></td> <td><?php echo $v['age']?></td> <td> <a href="del.php?id=<?php echo $v['uid'];?>" rel="external nofollow" >删除</a> <a href="mod.php?id=<?php echo $v['uid'];?>" rel="external nofollow" >编辑</a> <?php if(!empty($_COOKIE['auth']) && $id != $v['uid']){ ?> <a href="addfans.php?id=<?php echo $v['uid'];?>&uid=<?php echo $id;?>" rel="external nofollow" >加关注</a> <?php } ?> </td> </tr> <?php } ?> <tr> <td colspan="4"> <?php if(($page_num-1)>=1){ ?> <a href="?page=<?php echo ($page_num-1);?>" rel="external nofollow" >上一页</a> <?php } ?> <?php if(($page_num+1)<=$page_count){ ?> <a href="?page=<?php echo ($page_num+1);?>" rel="external nofollow" >下一页</a> <?php } ?> <a href="?page=1" rel="external nofollow" >首页</a> <a href="?page=<?php echo ($page_count);?>" rel="external nofollow" >尾页</a> 当前<?php echo $page_num;?>页 总共<?php echo $page_count;?>页 总共<?php echo $count;?>个用户 </td> </tr> </table> <!--关注功能,建议用集合实现,因为集合元素唯一,并且可以容易求出两个用户粉丝之间交集与差集,进而进行好友推荐功能--> <table border=1> <caption>我关注了谁</caption> <?php $data = $redis->smembers("user:".$id.":following"); foreach($data as $v){ $row = $redis->hgetall("user:".$v); ?> <tr> <td><?php echo $row['uid'];?></td> <td><?php echo $row['username'];?></td> <td><?php echo $row['age'];?></td> </tr> <?php } ?> <table> <table border=1> <caption>我的粉丝</caption> <?php $data = $redis->smembers("user:".$id.":followers"); foreach($data as $v){ $row = $redis->hgetall("user:".$v); ?> <tr> <td><?php echo $row['uid'];?></td> <td><?php echo $row['username'];?></td> <td><?php echo $row['age'];?></td> </tr> <?php } ?> <table>
ログイン
login.php<?php setcookie("auth","",time()-1); header("location:list.php");
削除
del.php<?php require("redis.php"); $username = $_POST['username']; $pass = $_POST['password']; //根据注册时存储的以用户名为键的字符类型中查找用户id $id = $redis->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"); } } ?> <form action="" method="post"> 用户名:<input type="text" name="username"/><br> 密码:<input type="password" name="password"><br> <input type="submit" value="登录"/> </form>
編集インターフェース
mod.php
<?php require("redis.php"); $uid = $_GET['id']; //echo $uid; $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");
編集機能
doedit.php<?php require("redis.php"); $uid = $_GET['id']; $data=$redis->hgetall("user:".$uid); ?> <form action="doedit.php" method="post"> <input type="hidden" value="<?php echo $data['uid'];?>" name="uid"> 用户名:<input type="text" name="username" value="<?php echo $data['username'];?>"><br> 年龄:<input type="text" name="age" value="<?php echo $data['age'];?>"><br> <input type="submit" value="提交"> <input type="reset" value="重填"> </form>
フォロー追加
addfans.php<?php require('redis.php'); $uid = $_POST['uid']; $username = $_POST['username']; $age = $_POST['age']; $a=$redis->hmset("user:".$uid,array("username"=>$username,"age"=>$age)); if($a){ header("location:list.php"); }else{ header("location:mod.php?id=".$uid); }
php での Redis のアプリケーションメッセージングの詳細な説明
Redis メッセージキューに基づいて Weibo を公開する PHP の方法の詳細な説明
PHPSession のストレージ/デポジットレディス詳しいやり方説明
以上がPHP+redis方式で登録、削除、編集、ページング、ログイン、フォロー等の機能を実現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
