検索
ホームページバックエンド開発PHPチュートリアルPHP は、登録後に新規ユーザーのログイン機能を有効にするための確認メールを実装します

この記事では、PHP に実装されているユーザー登録と認証メールのアクティベーション機能を主に紹介し、PHP メールを介してユーザーをアクティベートする際のデータベースとメール関連の操作スキルを詳細に分析します。必要な友人は参考にしてください。 PHPで実装されたアクティベーション例とユーザー登録確認メール機能。参考までに皆さんと共有してください。詳細は次のとおりです:

ここでは、PHP + Mysql を使用してアカウントの登録、アクティベーション電子メールの送信、アクティベーション アカウントの検証、および URL の処理の機能を完了する方法を例と組み合わせて紹介します。リンクの有効期限。

登録メールアクティベーションプロセス1. ユーザー登録 2. この時点ではアカウントはアクティベートされていません。

3. ユーザー名、パスワード、またはその他の識別文字を暗号化して、アクティベーション識別コード (アクティベーション コードと呼ぶこともできます) を形成します。

4. 構築されたアクティベーション識別コードを、ユーザーが送信した電子メール アドレスの URL に送信します。
5. ユーザーはメールにログインし、URL をクリックしてアクティブ化します。
6. アクティベーション識別コードを確認し、正しい場合はアカウントをアクティベートします。


t_user.sql

ユーザー情報テーブルの [電子メール] フィールドは非常に重要であり、ユーザーの確認、パスワードの取得に使用でき、Web サイトのパーティーでも電子メールのユーザー情報を収集するために使用できます。以下はユーザーです。 情報テーブル t_user のテーブル構造:

CREATE TABLE IF NOT EXISTS `t_user` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `username` varchar(30) NOT NULL COMMENT '用户名',
 `password` varchar(32) NOT NULL COMMENT '密码',
 `email` varchar(30) NOT NULL COMMENT '邮箱',
 `token` varchar(50) NOT NULL COMMENT '帐号激活码',
 `token_exptime` int(10) NOT NULL COMMENT '激活码有效期',
 `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态,0-未激活,1-已激活',
 `regtime` int(10) NOT NULL COMMENT '注册时间',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


HTML

以下は、ユーザーがユーザー名、パスワード、電子メールなどの登録情報を入力できる登録フォームです。

<form id="reg" action="register.php" method="post">
  <p>用户名:<input type="text" class="input" name="username" id="user"></p>
  <p>密 码:<input type="password" class="input" name="password" id="pass"></p>
  <p>E-mail:<input type="text" class="input" name="email" id="email"></p>
  <p><input type="submit" class="btn" value="提交注册"></p>
</form>


register.phpでデータの書き込みとメールの送信が完了します

まずデータベースに接続し、メール送信クラスsmtp.class.phpを組み込みます

include_once("connect.php");//连接数据库
include_once("smtp.class.php");//邮件发送类

フロントエンドは省略しています検証フォームを作成し、それを直接確認します プログラム

$username = stripslashes(trim($_POST[&#39;username&#39;]));
$query = mysql_query("select id from t_user where username=&#39;$username&#39;");
$num = mysql_num_rows($query);
if($num==1){
  echo &#39;用户名已存在,请换个其他的用户名&#39;;
  exit;
}

次に、ユーザーのパスワードを暗号化し、アクティベーション識別コードを構築します:

$password = md5(trim($_POST[&#39;password&#39;])); //加密密码
$email = trim($_POST[&#39;email&#39;]); //邮箱
$regtime = time();
$token = md5($username.$password.$regtime); //创建用于激活识别码
$token_exptime = time()+60*60*24;//过期时间为24小时后
$sql = "insert into `t_user` (`username`,`password`,`email`,`token`,`token_exptime`,`regtime`)
values (&#39;$username&#39;,&#39;$password&#39;,&#39;$email&#39;,&#39;$token&#39;,&#39;$token_exptime&#39;,&#39;$regtime&#39;)";
mysql_query($sql);

上記のコードでは、$token は構築されたアクティベーション識別コードであり、次のように構成されます。ユーザー名、パスワード、現在時刻をmd5暗号化して取得します。 $token_exptime は、アクティベーション リンク URL の有効期限を設定するために使用されます。この例では、アクティベーションは 24 時間以内に有効です。最後に、これらのフィールドがデータ テーブル t_user に挿入されます。

データが正常に挿入されたら、電子メール送信クラスを呼び出して、ユーザーがクリックしたときに、構築されたアクティベーション識別コードをアクティベーション リンクとして完全な URL に送信することに注意してください。詳細コード:

if (mysql_insert_id()) {//写入成功,发邮件
  include_once("smtp.class.php");
  $smtpserver = "smtp.163.com"; //SMTP服务器
  $smtpserverport = 25; //SMTP服务器端口
  $smtpusermail = "hjl416148489_4@163.com"; //SMTP服务器的用户邮箱
  $smtpuser = "hjl416148489_4@163.com"; //SMTP服务器的用户帐号
  $smtppass = "hjl7233163"; //SMTP服务器的用户密码
  $smtp = new Smtp($smtpserver, $smtpserverport, true, $smtpuser, $smtppass); //这里面的一个true是表示使用身份验证,否则不使用身份验证.
  $emailtype = "HTML"; //信件类型,文本:text;网页:HTML
  $smtpemailto = $email;
  $smtpemailfrom = $smtpusermail;
  $emailsubject = "用户帐号激活";
  $emailbody = "亲爱的" . $username . ":<br/>感谢您在我站注册了新帐号。<br/>请点击链接激活您的帐号。<br/><a href=&#39;http://www.jb51.net/demo/active.php?verify=" . $token . "&#39; target=&#39;_blank&#39;>http://www.jb51.net/demo/active.php?verify=" . $token . "</a><br/>如果以上链接无法点击,请将它复制到你的浏览器地址栏中进入访问,该链接24小时内有效。<br/>如果此次激活请求非你本人所发,请忽略本邮件。<br/><p style=&#39;text-align:right&#39;>-------- 脚本之家http://www.jb51.net敬上</p>";
  $rs = $smtp->sendmail($smtpemailto, $smtpemailfrom, $emailsubject, $emailbody, $emailtype);
  if ($rs == 1) {
    $msg = &#39;恭喜您,注册成功!<br/>请登录到您的邮箱及时激活您的帐号!&#39;;
  } else {
    $msg = $rs;
  }
  echo $msg;
}


active.php

active.phpは、送信されたリンク情報を受信し、アクティベーション識別コードであるパラメータverifyの値を取得します。クエリを実行し、データ テーブル内のユーザー情報と比較します。該当するデータ セットが存在する場合は、有効期限内であれば、対応するユーザー テーブルのステータス フィールドを 1 に設定します。これでアクティベーション機能が完了します。

include_once("connect.php");//连接数据库
$verify = stripslashes(trim($_GET[&#39;verify&#39;]));
$nowtime = time();
$query = mysql_query("select id,token_exptime from t_user where status=&#39;0&#39; and
`token`=&#39;$verify&#39;");
$row = mysql_fetch_array($query);
if($row){
  if($nowtime>$row[&#39;token_exptime&#39;]){ //24hour
    $msg = &#39;您的激活有效期已过,请登录您的帐号重新发送激活邮件.&#39;;
  }else{
    mysql_query("update t_user set status=1 where id=".$row[&#39;id&#39;]);
    if(mysql_affected_rows($link)!=1) die(0);
    $msg = &#39;激活成功!&#39;;
  }
}else{
  $msg = &#39;error.&#39;;
}
echo $msg;

アクティベーションが成功すると、トークン フィールドがもう役に立たないことがわかり、クリアできます。そしてステータス発動ステータスが1に変化します。

以上がPHP は、登録後に新規ユーザーのログイン機能を有効にするための確認メールを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
如何在PHP中实现用户注册时发送短信验证码如何在PHP中实现用户注册时发送短信验证码Sep 28, 2023 pm 12:01 PM

如何在PHP中实现用户注册时发送短信验证码随着移动互联网的普及,手机号码已经成为用户注册和登录的重要凭证之一。为了保证用户账号的安全性,很多网站和应用都会在用户注册时发送短信验证码进行验证。本文将介绍如何在PHP中实现用户注册时发送短信验证码的功能,并附上具体的代码示例。一、创建短信验证码发送接口首先,我们需要创建一个短信验证码发送接口,用于向用户的手机号码

如何使用PHP和CGI实现用户注册和登录功能如何使用PHP和CGI实现用户注册和登录功能Jul 21, 2023 pm 02:31 PM

如何使用PHP和CGI实现用户注册和登录功能用户注册和登录是许多网站必备的功能之一。在本文中,我们将介绍如何使用PHP和CGI来实现这两个功能。我们将通过代码示例来演示整个过程。一、用户注册功能的实现用户注册功能允许新用户创建一个账户,并将其信息保存到数据库中。以下是实现用户注册功能的代码示例:创建数据库表首先,我们需要创建一个数据库表,用于存储用户信息。可

芝麻交易所交易流程芝麻交易所交易流程Feb 09, 2024 am 08:20 AM

芝麻交易所是我国领先的在线交易平台之一,为各类商品提供安全、高效的交易服务。它的交易流程包括用户注册、商品展示、订单生成、交易撮合、物流配送以及售后服务等多个环节。本文将详细介绍芝麻交易所的交易流程,帮助读者更好地了解和使用该平台。用户注册与登录在使用芝麻交易所进行交易之前,用户必须注册并登录。用户可以选择通过手机验证码、第三方账号或手动注册的方式登录。在注册过程中,用户需要提供真实有效的个人信息,并同意遵守芝麻交易所的交易规则和用户协议。商品展示与搜索注册成功后,用户可进入芝麻交易所主页,通过

如何用PHP实现CMS系统的用户注册/登录功能如何用PHP实现CMS系统的用户注册/登录功能Aug 07, 2023 am 11:31 AM

如何用PHP实现CMS系统的用户注册/登录功能?随着互联网的发展,CMS(ContentManagementSystem,内容管理系统)系统成为了网站开发中非常重要的一环。而其中的用户注册/登录功能更是不可或缺的一部分。本文将介绍如何使用PHP语言实现CMS系统的用户注册/登录功能,并附上相应的代码示例。以下是实现步骤:创建用户数据库首先,我们需要建立一

如何利用PHP函数实现用户注册和登录的验证码生成和验证?如何利用PHP函数实现用户注册和登录的验证码生成和验证?Jul 24, 2023 pm 06:09 PM

如何利用PHP函数实现用户注册和登录的验证码生成和验证?在网站的用户注册和登录页面中,为了防止机器人批量注册和攻击,通常需要添加验证码功能。本文将介绍如何利用PHP函数实现用户注册和登录的验证码生成和验证。验证码生成首先,我们需要生成随机的验证码图片供用户填写。PHP提供了GD库和图像处理函数,可以方便地生成验证码图片。&lt;?php//创建一个画布

如何利用PHP实现用户注册功能如何利用PHP实现用户注册功能Sep 25, 2023 pm 06:13 PM

如何利用PHP实现用户注册功能在现代的网络应用程序中,用户注册功能是一个非常常见的需求。通过注册功能,用户可以创建自己的账户并使用相应的功能。本文将通过PHP编程语言来实现用户注册功能,并提供详细的代码示例。首先,我们需要创建一个HTML表单,用于接收用户的注册信息。在表单中,我们需要包含一些输入字段,如用户名、密码、邮箱等。可以根据实际需求自定义表单字段。

使用Laravel框架实现用户注册和登录功能的步骤使用Laravel框架实现用户注册和登录功能的步骤Jul 28, 2023 pm 03:17 PM

使用Laravel框架实现用户注册和登录功能的步骤Laravel是一个流行的PHP开发框架,提供了许多强大的功能和工具,使得开发者可以轻松构建各种Web应用程序。用户注册和登录是任何应用程序的基本功能之一,下面我们将使用Laravel框架来实现这两个功能。步骤1:创建新的Laravel项目首先,我们需要在本地计算机上创建一个新的Laravel项目。打开终端或

Node.js开发:如何实现用户注册和登录功能Node.js开发:如何实现用户注册和登录功能Nov 08, 2023 pm 12:27 PM

Node.js开发:如何实现用户注册和登录功能,需要具体代码示例引言:在Web应用程序开发过程中,用户注册和登录功能是必不可少的一部分。本文将详细介绍如何使用Node.js实现用户注册和登录功能,提供具体的代码示例。一、用户注册功能的实现创建数据库首先,我们需要创建一个数据库来存储用户的注册信息。可以使用MongoDB、MySQL等数据库来存储用户信息。创建

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール