Inhaltsverzeichnis
PHP邮箱验证示例教程,php邮箱示例
Heim php教程 php手册 PHP邮箱验证示例教程,php邮箱示例

PHP邮箱验证示例教程,php邮箱示例

Jun 13, 2016 am 08:38 AM
php 邮箱 验证

PHP邮箱验证示例教程,php邮箱示例

在用户注册中最常见的安全验证之一就是邮箱验证。根据行业的一般做法,进行邮箱验证是避免潜在的安全隐患一种非常重要的做法,现在就让我们来讨论一下这些最佳实践,来看看如何在PHP中创建一个邮箱验证。

让我们先从一个注册表单开始:

<form method="post" action="http://mydomain.com/registration/">
 <fieldset class="form-group">
 <label for="fname">First Name:</label>
 <input type="text" name="fname" class="form-control" required />
  </fieldset>

  <fieldset class="form-group">
 <label for="lname">Last Name:</label>
 <input type="text" name="lname" class="form-control" required />
  </fieldset>

  <fieldset class="form-group">
 <label for="email">Last name:</label>
 <input type="email" name="email" class="form-control" required />
  </fieldset>

  <fieldset class="form-group">
 <label for="password">Password:</label>
 <input type="password" name="password" class="form-control" required />
  </fieldset>

  <fieldset class="form-group">
 <label for="cpassword">Confirm Password:</label>
 <input type="password" name="cpassword" class="form-control" required />
  </fieldset>

  <fieldset>
    <button type="submit" class="btn">Register</button>
  </fieldset>
</form> 
Nach dem Login kopieren

接下来是数据库的表结构:

CREATE TABLE IF NOT EXISTS `user` (
 `id` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
 `fname` VARCHAR(255) ,
 `lname` VARCHAR(255) ,
 `email` VARCHAR(50) ,
 `password` VARCHAR(50) ,
 `is_active` INT(1) DEFAULT '0',
 `verify_token` VARCHAR(255) ,
 `created_at` TIMESTAMP,
 `updated_at` TIMESTAMP,
); 
Nach dem Login kopieren

一旦这个表单被提交了,我们就需要验证用户的输入并且创建一个新用户:

// Validation rules
$rules = array(
  'fname' => 'required|max:255',
  'lname' => 'required|max:255',
 'email' => 'required',
 'password' => 'required|min:6|max:20',
 'cpassword' => 'same:password'
);

$validator = Validator::make(Input::all(), $rules);

// If input not valid, go back to registration page
if($validator->fails()) {
 return Redirect::to('registration')->with('error', $validator->messages()->first())->withInput();
}

$user = new User();
$user->fname = Input::get('fname');
$user->lname = Input::get('lname');
$user->password = Input::get('password');

// You will generate the verification code here and save it to the database

// Save user to the database
if(!$user->save()) {
 // If unable to write to database for any reason, show the error
 return Redirect::to('registration')->with('error', 'Unable to write to database at this time. Please try again later.')->withInput();
}

// User is created and saved to database
// Verification e-mail will be sent here

// Go back to registration page and show the success message
return Redirect::to('registration')->with('success', 'You have successfully created an account. The verification link has been sent to e-mail address you have provided. Please click on that link to activate your account.');

Nach dem Login kopieren

注册之后,用户的账户仍然是无效的直到用户的邮箱被验证。此功能确认用户是输入电子邮件地址的所有者,并有助于防止垃圾邮件以及未经授权的电子邮件使用和信息泄露。

整个流程是非常简单的——当一个新用户被创建时,在注册过过程中,一封包含验证链接的邮件便会被发送到用户填写的邮箱地址中。在用户点击邮箱验证链接和确认邮箱地址之前,用户是不能进行登录和使用网站应用的。

关于验证的链接有几件事情是需要注意的。验证的链接需要包含一个随机生成的token,这个token应该足够长并且只在一段时间段内是有效的,这样做的方法是为了防止网络攻击。同时,邮箱验证中也需要包含用户的唯一标识,这样就可以避免那些攻击多用户的潜在危险。

现在让我们来看看在实践中如何生成一个验证链接:

// We will generate a random 32 alphanumeric string
// It is almost impossible to brute-force this key space
$code = str_random(32);
$user->confirmation_code = $code; 
Nach dem Login kopieren

一旦这个验证被创建就把他存储到数据库中,发送给用户:

Mail::send('emails.email-confirmation', array('code' => $code, 'id' => $user->id), function($message)
{
$message->from('my@domain.com', 'Mydomain.com')->to($user->email, $user->fname . ' ' . $user->lname)->subject('Mydomain.com: E-mail confirmation');
}); 
Nach dem Login kopieren

邮箱验证的内容:

<!DOCTYPE html>
<html lang="en-US">
 <head>
 <meta charset="utf-8" />
 </head>

 <body>
 <p style="margin:0">
  Please confirm your e-mail address by clicking the following link:
  <a href="http://mydomain.com/verify&#63;code=<&#63;php echo $code; &#63;>&user=<&#63;php echo $id; &#63;>"></a>
 </p>
 </body>
</html> 
Nach dem Login kopieren

现在让我们来验证一下它是否可行:

$user = User::where('id', '=', Input::get('user'))
  ->where('is_active', '=', 0)
  ->where('verify_token', '=', Input::get('code'))
  ->where('created_at', '>=', time() - (86400 * 2))
  ->first();

if($user) {
 $user->verify_token = null;
 $user->is_active = 1;

 if(!$user->save()) {
 // If unable to write to database for any reason, show the error
 return Redirect::to('verify')->with('error', 'Unable to connect to database at this time. Please try again later.');
 }

 // Show the success message
 return Redirect::to('verify')->with('success', 'You account is now active. Thank you.');
}

// Code not valid, show error message
return Redirect::to('verify')->with('error', 'Verification code not valid.'); 

Nach dem Login kopieren

结论:
上面展示的代码只是一个教程示例,并且没有通过足够的测试。在你的web应用中使用的时候请先测试一下。上面的代码是在Laravel框架中完成的,但是你可以很轻松的把它迁移到其他的PHP框架中。同时,验证链接的有效时间为48小时,之后就过期。引入一个工作队列就可以很好的及时处理那些已经过期的验证链接。

本文实PHPChina原创翻译,原文转载于http://www.phpchina.com/portal.php?mod=view&aid=39888,小编认为这篇文章很具有学习的价值,分享给大家,希望对大家的学习有所帮助。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

OKX OUYI Offizielles Website Registrierungsportal 2025 OKX OUYI Offizielles Website Registrierungsportal 2025 Mar 04, 2025 pm 11:45 PM

OKX Ouyi ist eine führende Kryptowährungs -Handelsplattform. Dieser Artikel enthält detaillierte Schritte, um Sie zum Registrieren eines OKX Ouyi Official -Website -Kontos zu führen. Sie erfahren, wie Sie auf die offizielle Website zugreifen, die Registrierungsmethode auswählen, die erforderlichen Informationen eingeben und den Registrierungsprozess abschließen. Der Artikel enthält auch Informationen zu Vorsichtsmaßnahmen, z. B. die Bedeutung der Verwendung realer persönlicher Informationen und der Festlegung eines starken Kennworts.

Sesam Open Door Exchange Webseite Login Neueste Version Gateio Offizieller Website Eingang Sesam Open Door Exchange Webseite Login Neueste Version Gateio Offizieller Website Eingang Mar 04, 2025 pm 11:48 PM

Eine detaillierte Einführung in den Anmeldungsbetrieb der Sesame Open Exchange -Webversion, einschließlich Anmeldeschritte und Kennwortwiederherstellungsprozess.

Gateio Exchange App Old Version Gateio Exchange App Old Version Download Kanal Gateio Exchange App Old Version Gateio Exchange App Old Version Download Kanal Mar 04, 2025 pm 11:36 PM

Gateio Exchange-App-Kanäle für alte Versionen, die offizielle Anwendungsmärkte von Drittanbietern, Forum-Communities und andere Kanäle abdecken.

Sesam Open Door Login Registrierung Eingangstor Sesam Open Door Login Registrierung Eingangstor Mar 04, 2025 pm 04:51 PM

Gate.io (Sesam Open Door) ist die weltweit führende Kryptowährungsprüfung. Das Tutorial umfasst Schritte wie Kontoregistrierung und Anmeldung, KYC -Zertifizierung, Fiat -Währung und digitale Währungsaufladung, Handelspaarauswahl, Grenz-/Markttransaktionsbestellungen sowie Bestellungen und Transaktionsaufzeichnungen, wodurch Sie schnell auf der Gate.IO -Plattform für den Kryptowährungshandel beginnen. Egal, ob ein Anfänger oder ein Veteran, Sie können von diesem Tutorial profitieren und die Handelsfähigkeiten von Gate.io problemlos beherrschen.

Registrieren Sie sich und laden Sie die neueste App auf der offiziellen Bitget -Website herunter und laden Sie sie herunter Registrieren Sie sich und laden Sie die neueste App auf der offiziellen Bitget -Website herunter und laden Sie sie herunter Mar 05, 2025 am 07:54 AM

Dieser Leitfaden enthält detaillierte Download- und Installationsschritte für die offizielle Bitget Exchange -App, die für Android- und iOS -Systeme geeignet ist. Der Leitfaden integriert Informationen aus mehreren maßgeblichen Quellen, einschließlich der offiziellen Website, dem App Store und Google Play, und betont Überlegungen während des Downloads und des Kontoverwaltung. Benutzer können die App aus offiziellen Kanälen herunterladen, einschließlich App Store, offizieller Website APK Download und offizieller Website -Sprung sowie vollständige Registrierung, Identitätsüberprüfung und Sicherheitseinstellungen. Darüber hinaus deckt der Handbuch häufig gestellte Fragen und Überlegungen ab, wie z.

Gate.io Offizielle Login -Web -Version Sesam Open Door Trading Platform Web Version Anmelde Webversion Webversion Gate.io Offizielle Login -Web -Version Sesam Open Door Trading Platform Web Version Anmelde Webversion Webversion Mar 04, 2025 pm 04:33 PM

Die Anmeldemethode der Sesam Open Door Trading Platform ist praktisch. Die Plattform kann Sicherheitsüberprüfungsmechanismen wie 2FA ermöglichen, um die Sicherheit der Kontos zu gewährleisten.

Binance Download App Binance Binance Plattform Download kostenlose App Binance Download App Binance Binance Plattform Download kostenlose App Mar 18, 2025 pm 01:54 PM

In diesem Artikel werden zwei Methoden zum Herunterladen von Binance -App auf Apple IOS -System- und Android -System -Mobiltelefonen vorgestellt. Da der App Store in China nicht direkt heruntergeladen werden kann, müssen Benutzer die Apple -ID in der Außenzone verwenden und die Apple -ID in der Außenzone ausleihen oder registrieren, um sie herunterzuladen. Android -Benutzer können es direkt im App Store suchen und installieren oder die offizielle Website von Binance besuchen, um den QR -Code zum Herunterladen des Installationspakets zu scannen. Es ist zu beachten, dass Sie beim Herunterladen von Anwendungen aus inoffiziellen Kanälen möglicherweise die Anwendungsinstallationsberechtigungen unbekannter Quellen auf Ihrem Telefon aktivieren müssen. Unabhängig davon, welches System Sie sind, können Sie nach dem Herunterladen die Binance -App verwenden.

Das neueste Registrierungsportal für die offizielle Website von Ouyi Das neueste Registrierungsportal für die offizielle Website von Ouyi Mar 21, 2025 pm 05:54 PM

Als weltweit führende digitale Asset Trading Platform zieht Ouyi OKX viele Investoren mit ihren reichhaltigen Handelsprodukten, starken Sicherheitsgarantien und bequemen Benutzererfahrungen an. Die Risiken der Netzwerksicherheit werden jedoch immer schwerwiegender, und es ist entscheidend, das offizielle Ouyi OKX -Konto sicher zu registrieren. In diesem Artikel wird das neueste Registrierungsportal für die offizielle Website von Ouyi OKX enthält und die Schritte und Vorsichtsmaßnahmen für eine sichere Registrierung ausführlich erläutert, einschließlich der Identifizierung der offiziellen Website, der festen Überprüfung der Zwei-Faktor usw., damit Sie Ihre digitale Anlageninvestitionsreise sicher und bequem beginnen können. Bitte beachten Sie, dass es Risiken bei der Investition in Digital Asset gibt. Bitte treffen Sie vorsichtige Entscheidungen.

See all articles