웹사이트에 계정을 등록하면 일반적으로 계정을 활성화할 수 있는 클릭 링크가 포함된 이메일을 받게 됩니다. 이 글에서는 주로 PHP 이메일 활성화 계정 구현 코드를 소개합니다.
등록 중입니다. 웹사이트 우리는 계정을 개설할 때 일반적으로 계정을 활성화하기 위한 클릭 링크가 포함된 이메일을 받습니다. 오늘은 어떻게 계정을 활성화합니까?
준비 조건
저희는 계정을 등록할 때 일반적으로 사용자 테이블에 ID, 사용자 이름, 비밀번호, 이메일 또는 휴대폰 번호를 기록하며, 계정 활성화 여부를 입력하는 필드도 있습니다. activation varchar(50)
이라고 가정합니다. 등록 시 일반적으로 활성화 코드가 생성되며 활성화 코드는 $activation_key=bin2hex(openssl_random_pseudo_bytes()를 사용할 수 있습니다. 16))
를 생성하여 필드에 삽입합니다. activation varchar(50)
注册时一般都会生成一个激活码,并且把激活码插入activation字段,我们可以使用$activation_key=bin2hex(openssl_random_pseudo_bytes(16));
来生成,并且把它插入字段。
在链接中保存激活信息
既然我们点击了邮件里的链接后,就激活了账户,那么说明这个链接里,必然储存了激活信息。而它应该储存哪些信息呢,首先,必须有激活码,还有用户注册时的邮箱或者id,我们这里用邮箱。例如下面这个链接。
复制代码 代码如下:
$message.="64836ed00a3411da01dfd6168e7db875Activate5db79b134e9f6b82c0b36e0489ee08ed";
$email
使我们注册时的邮箱,我们用urlencode()
来编码一下,将字符串用于 URL 的请求部分,$activation_key
링크에 활성화 정보 저장
이메일에 있는 링크를 클릭해서 계정을 활성화했으니 활성화 정보가 이 링크에 저장되어야 한다는 뜻입니다. 어떤 정보를 저장해야 합니까? 먼저 등록 시 활성화 코드와 사용자의 이메일 또는 ID가 있어야 합니다. 예를 들어 아래 링크입니다.코드 복사 코드는 다음과 같습니다:
$message. ="< ;a href="." rel="외부 nofollow" http://www.XXXXX.com/activate.php?email=".urlencode($email)."&key=$activation_key"."> Activate4a11e5928b3688cf38c9163b657eb5ac";
$email
은 등록할 때 사용한 이메일 주소입니다. urlencode()
를 사용하여 이를 인코딩하고 요청 문자열을 사용합니다. $activation_key는 우리가 생성한 활성화 코드입니다. 우리는 서버를 사용하여 활성화 이메일을 이 이메일로 보내고 이는 이메일 클라이언트에 하이퍼링크로 표시됩니다. 클릭하면 이메일과 키가 activate.php 파일로 전송됩니다. 이는 인증 및 계정 활성화가 시작됨을 의미합니다.
<?php $link=mysqli_connect("localhost", "root", "root", "project") or die("Database Access Denied");//连接数据库 if (!isset($_GET['email'])||!isset($_GET["key"])){ echo "<p class='alert alert-danger'>Account Activation Failed</p>"; exit;//如果邮件链接损坏,没有传入用户激活信息,则不执行后续步骤 } $email=$_GET['email']; $key=$_GET['key']; $email=mysqli_real_escape_string($link, $email); $key=mysqli_real_escape_string($link, $key);//转义特殊字符 $sql="UPDATE users SET activation='activated' WHERE (user_email='$email' AND activation='$key') LIMIT 1"; $result=mysqli_query($link, $sql);//查询email与key匹配的数据项,并且更新activation字段到activated if (mysqli_affected_rows($link)==1){ echo "<p>Account Activated</p>"; echo '<a href="index.php" rel="external nofollow" type="button">Login</a>'; echo "<br/>"; }else{ echo "<p>Account Activation Failed Or Already Activated</p>"; } ?>🎜🎜🎜🎜이제 사용자가 로그인하면 먼저 다음과 일치하는지 확인합니다. 활성화가 활성화되면 다음 단계를 진행하세요🎜🎜이 문서에서는 이 문제에 대한 해결책만 다루고 있으며, 전체 사용자 등록, 활성화, 로그인 및 이메일을 보내는 서버도 구성해야 합니다🎜
위 내용은 PHP 사용자 등록 이메일 활성화 계정 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!