ホームページ バックエンド開発 PHPチュートリアル PHP開発スキル:ユーザー登録・SMS認証機能の実装方法

PHP開発スキル:ユーザー登録・SMS認証機能の実装方法

Sep 21, 2023 pm 02:37 PM
PHP開発 ユーザー登録 SMS認証 PHP開発スキル

PHP開発スキル:ユーザー登録・SMS認証機能の実装方法

PHP 開発スキル: ユーザー登録 SMS 認証機能の実装方法

インターネット時代において、Web サイトやアプリケーションではユーザー登録が一般的な動作になりました。ユーザーのアカウントのセキュリティを保護し、悪意のある登録を防ぐために、多くの企業が SMS 認証機能を有効にしています。ユーザーは、登録時に自分の身元と有効性を確認するために携帯電話番号を入力し、SMS 認証コードを受け取る必要があります。この記事では、PHP言語を使用してユーザー登録SMS認証機能を実装する方法と具体的なコード例を紹介します。

ステップ 1: 開発環境を準備する

まず、PHP パーサーとデータベース (MySQL など) がインストールされていることを確認します。さらに、利用可能な SMS プラットフォームも必要です。この例では、Alibaba Cloud SMS サービス (Aliyun SMS) を使用します。 Alibaba Cloud にアカウントを登録し、ドキュメントに従って API キーを設定および取得する必要があります。

ステップ 2: データベースの作成

「users」という名前のデータベースを作成し、データベース内に「users」という名前のテーブルを作成します。テーブルの構造は次のとおりです。

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(255) NOT NULL,
  password VARCHAR(255) NOT NULL,
  mobile VARCHAR(20) UNIQUE NOT NULL,
  status TINYINT(1) DEFAULT 0,
  verification_code VARCHAR(6) DEFAULT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
ログイン後にコピー

このテーブルには、ユーザー名、パスワード、携帯電話番号、ユーザー ステータス、確認コード、作成時刻などのユーザー情報が保存されます。

ステップ 3: SMS 確認コードを送信する

次に、SMS 確認コードを送信するための PHP 関数を作成します。この関数では、Alibaba Cloud の SMS API を呼び出し、携帯電話番号と確認コードをパラメータとして渡す必要があります。

function sendSMS($mobile, $verificationCode) {
  $accessKeyId = '<Your Access Key Id>';
  $accessSecret = '<Your Access Key Secret>';
  $params = [
    'PhoneNumbers' => $mobile,
    'SignName' => '<Your Sign Name>',
    'TemplateCode' => '<Your Template Code>',
    'TemplateParam' => json_encode(['code' => $verificationCode])
  ];
  $client = new GuzzleHttpClient();
  $response = $client->request('POST', 'https://dysmsapi.aliyuncs.com/', [
    'query' => array_merge($params, ['AccessKeyId' => $accessKeyId]),
    'headers' => ['x-sdk-client' => 'php/2.0.0']
  ]);
  return $response->getBody();
}
ログイン後にコピー

この関数では、<Your Access Key Id><Your Access Key Secret> を、Alibaba Cloud から取得したものに置き換える必要があります。 APIキー情報。同時に、<署名名><テンプレート コード> を、Alibaba Cloud で設定した SMS 署名と SMS テンプレート コードに置き換える必要があります。

ステップ 4: 登録リクエストを処理する

ユーザーが登録リクエストを送信するとき、携帯電話番号がすでに登録されているかどうかを確認する必要があります。登録されていない場合は、6 桁の確認コードがランダムに生成され、データベースに保存されます。

function registerUser($username, $password, $mobile) {
  // 检查手机号码是否已被注册
  if (checkMobileExists($mobile)) {
    return '手机号码已被注册';
  }
  // 生成随机验证码
  $verificationCode = rand(100000, 999999);
  // 保存验证码到数据库
  saveVerificationCode($mobile, $verificationCode);
  // 发送短信验证码
  $response = sendSMS($mobile, $verificationCode);
  return '短信验证码已发送';
}

function checkMobileExists($mobile) {
  // 连接数据库
  $conn = new mysqli('localhost', 'root', 'password', 'users');
  // 检查手机号码是否已存在
  $sql = "SELECT * FROM users WHERE mobile = '{$mobile}'";
  $result = $conn->query($sql);
  return $result->num_rows > 0;
}

function saveVerificationCode($mobile, $verificationCode) {
  // 连接数据库
  $conn = new mysqli('localhost', 'root', 'password', 'users');
  // 保存验证码到数据库
  $sql = "UPDATE users SET verification_code = '{$verificationCode}' WHERE mobile = '{$mobile}'";
  $conn->query($sql);
}
ログイン後にコピー

このサンプルコードでは、まず携帯電話番号が登録されているかどうかを確認します。携帯電話番号がすでに存在する場合は、エラー メッセージが返されます。それ以外の場合は、ランダムな 6 桁の確認コードが生成され、データベースに保存されます。

ステップ 5: 確認コードを確認する

ユーザーが受信した SMS 確認コードを入力するとき、確認コードが正しいかどうかを確認する必要があります。確認コードが正しい場合、ユーザーのステータスが「認証済み」に更新され、ユーザーが携帯電話番号で認証されたことが示されます。

function verifyCode($mobile, $verificationCode) {
  // 检查验证码是否正确
  if (checkVerificationCode($mobile, $verificationCode)) {
    // 更新用户状态
    updateStatus($mobile);
    return '手机号码验证成功';
  }
  return '验证码错误';
}

function checkVerificationCode($mobile, $verificationCode) {
  // 连接数据库
  $conn = new mysqli('localhost', 'root', 'password', 'users');
  // 检查验证码是否正确
  $sql = "SELECT * FROM users WHERE mobile = '{$mobile}' AND verification_code = '{$verificationCode}'";
  $result = $conn->query($sql);
  return $result->num_rows > 0;
}

function updateStatus($mobile) {
  // 连接数据库
  $conn = new mysqli('localhost', 'root', 'password', 'users');
  // 更新用户状态为已验证
  $sql = "UPDATE users SET status = 1 WHERE mobile = '{$mobile}'";
  $conn->query($sql);
}
ログイン後にコピー

このコードでは、まず検証コードが正しいかどうかを確認します。確認コードが正しい場合は、ユーザーのステータスが 1 に更新され、ユーザーが携帯電話番号で認証されたことを示します。

まとめ:

上記の手順により、ユーザー登録SMS認証機能を実装することができました。ユーザーは登録時にテキスト メッセージの認証コードを受け取り、正しい認証コードを入力することで、携帯電話番号の信頼性と有効性が保証されます。この SMS 認証機能は、ユーザー アカウントのセキュリティを効果的に向上させ、悪意のある登録やアカウントの盗難を防ぐことができます。

上記のコードは単なる例であり、実際のプロジェクトでは、他のセキュリティ対策や検証プロセスの改善が必要になる場合があります。ただし、この例を通じて、PHP 言語と Alibaba Cloud SMS サービスを使用してユーザー登録 SMS 検証機能を実装する方法を学ぶことができます。

参考資料:

  • [Alibaba Cloud SMS API ドキュメント](https://help.aliyun.com/document_detail/55284.html?spm=a2c4g.11186623.6.624.649a645e4YmxKU) )

以上がPHP開発スキル:ユーザー登録・SMS認証機能の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

鉄道12306メールアドレスの登録方法 鉄道12306メールアドレスの登録方法 Apr 30, 2024 am 11:33 AM

Railway 12306 の電子メール アドレスを登録する手順は次のとおりです。 12306 の Web サイトにアクセスし、[登録] をクリックして、電子メール、名前、携帯電話、その他の情報を入力し、パスワードと秘密の質問を設定します。プロンプトに、認証情報用の電子メール認証コードと携帯電話認証コードを入力し、「登録を完了」をクリックします。

Bitget Wallet 取引所に登録できないのはなぜですか? Bitget Wallet 取引所に登録できないのはなぜですか? Sep 06, 2024 pm 03:34 PM

BitgetWallet 取引所に登録できない理由は、アカウント制限、サポートされていない地域、ネットワークの問題、システム メンテナンス、技術的障害などさまざまです。 BitgetWallet 取引所に登録するには、公式 Web サイトにアクセスして情報を入力し、規約に同意して登録を完了し、本人確認を行ってください。

なぜDouyinは2つのアカウントを持っているのですか?携帯電話に2つのTikTokをインストールするにはどうすればよいですか? なぜDouyinは2つのアカウントを持っているのですか?携帯電話に2つのTikTokをインストールするにはどうすればよいですか? May 06, 2024 pm 09:28 PM

デジタル時代において、ソーシャルメディアは人々の生活に不可欠な部分となっています。 Douyin は、中国で最も人気のあるショートビデオ プラットフォームの 1 つとして、多くのユーザーを魅了しています。アカウントを 2 つ登録しているユーザーもいます。では、Douyin はなぜ 2 つのアカウントを持っているのでしょうか?この記事では、この質問に答え、携帯電話に 2 つの Douyin アカウントをインストールする方法を説明します。 1. なぜDouyinは2つのアカウントを持っているのですか?機能の差別化: ユーザーによっては、コンテンツの種類や機能に基づいてアカウントを区別する場合があります。たとえば、あるアカウントは日常生活を共有するために使用され、別のアカウントは専門的なスキルを示すために使用されます。 2. プライバシー保護: 一部のユーザーは、2 つのアカウントを通じてプライバシーを保護し、生活と仕事を分離し、情報漏洩を回避したいと考えています。 3. インタラクションのニーズ: インタラクションのニーズにより、ユーザーによっては 2 つを登録する場合があります。

Gate.io Open Sesame 新規ユーザー登録とリチャージのチュートリアル Gate.io Open Sesame 新規ユーザー登録とリチャージのチュートリアル Apr 25, 2024 pm 04:53 PM

Gate.io アカウントの登録とチャージ方法: 1. Gate.io 公式 Web サイトにアクセスし、「登録」をクリックします。 2. 登録方法(メールまたは携帯電話)を選択し、パスワードを設定し、規約に同意します。 3. アカウントにログインし、「リチャージ」をクリックします。 4. リチャージする法定通貨または暗号通貨を選択し、金額を入力し、リチャージ方法を選択します。 5. リチャージアドレスを取得し、外部ウォレットまたは取引所から資金を転送します。

Douyin で複数のアカウントの関連付けを解除するにはどうすればよいですか?アカウントリンクの役割は何ですか? Douyin で複数のアカウントの関連付けを解除するにはどうすればよいですか?アカウントリンクの役割は何ですか? Apr 20, 2024 pm 05:58 PM

Douyin は、現在最も人気のあるショートビデオ プラットフォームとして、数え切れないほどのユーザーを登録して共有しています。ユーザーによっては、目的に応じて複数の Douyin アカウントを登録する場合があります。 Douyin を使用すると、ユーザーは複数のアカウントをリンクして管理が容易になります。ただし、場合によっては、ユーザーがアカウントの関連付けを解除する必要がある場合があります。この記事では「Douyinで複数のアカウントの関連付けを解除する方法」に焦点を当て、アカウントの関連付けを解除する方法とアカウントの関連付けの役割を詳しく紹介します。 1.Douyin で複数のアカウントの関連付けを解除するにはどうすればよいですか? 1.Douyin APPを開き、「Me」個人ホームページに入ります。 2. 右上隅の「三本線」アイコンをクリックして機能メニューを開きます。 3. 機能メニューで「設定」オプションを見つけ、クリックしてに入ります。 4. 設定ページで、「アカウントとセキュリティ」オプションを見つけてクリックして入力します。

Douyinのスパークカラー変更ルールの詳しい説明は何ですか?条件に合わせた多彩なスパークカラー Douyinのスパークカラー変更ルールの詳しい説明は何ですか?条件に合わせた多彩なスパークカラー May 04, 2024 am 09:31 AM

ユーザー インタラクションを強化し、ユーザー エクスペリエンスを向上させるために、Douyin プラットフォームは興味深いインタラクティブ メカニズムである Spark を開始しました。ユーザーは、Douyin での一連のアクションを通じてスパークをアクティブ化し、アップグレードすることができます。異なる色は、異なる成果と名誉を表します。 Douyin Spark の色変更ルールを理解すると、ユーザーがより適切に参加して対話し、Douyin によってもたらされるソーシャルな楽しみを楽しむことができます。 1.Douyinのスパークカラー変更ルールの詳しい説明は何ですか? 1. 行動は、いいね、コメント、共有などのユーザーのインタラクティブな行動を活性化し、火花を散らす可能性があります。 2. レベルの向上 ユーザーのインタラクションが増えると、スパークは徐々にアップグレードされ、それに応じて色が変化します。 3. 色の変化 スパークの色の変化は、通常、ユーザーのインタラクション頻度、インタラクションの質、アクティビティへの参加に対する熱意に関連しています。 4. タスクが完了しました

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

Deepseekの公式ウェブサイトの入り口と最新のプロモーションアクティビティ Deepseekの公式ウェブサイトの入り口と最新のプロモーションアクティビティ Feb 19, 2025 pm 05:15 PM

Deepseekの公式Webサイトは現在、ユーザーにショッピングエクスペリエンスを提供するための複数の割引アクティビティを開始しています。新規ユーザーはサインアップして10ドルのクーポンを取得し、視聴者全員に15%の限定時間割引を享受します。友人は報酬を獲得することもできます。また、買い物時に贈り物を償還するためにポイントを蓄積することができます。イベントの締め切りは違う。

See all articles