當我們要儲存有關我們**使用者的資訊時,使用者登入和註冊系統非常有用。 這適用於從可能儲存課程進度和標記的教育**到將儲存有關客戶過去購買資訊的電子商務**的所有內容。
我們的第一步將是建立登入表單和登錄檔單。 **實際上將非常簡單。 登錄檔僅要求提供使用者名稱,電子郵件和密碼。 使用者名稱和電子郵件對於每個註冊的人都是唯一的。 如果有人嘗試使用相同的電子郵件位址建立兩個帳戶,我們將向他們顯示一條錯誤訊息,讓他們知道該電子郵件已在使用中。
這是用於建立登錄檔html。 您必須將其放入名為register.php的檔案中。
表單是非常基本的,但是我們確實使用html5來進行一些非常基本的輸入驗證。 例如,當使用者輸入的電子郵件位址格式不正確時,使用type="email"
會警告使用者。 類似地,在使用者名稱上使用pattern
屬性將確保使用者名稱僅包含字母數字字元。
這是登入表單html。 您可以將其放在名為login.php的檔案中。
您可以將以下css應用於這些表單:
*
body
h1 label
input
form
div.form-element
button
p.success,
p.error
p.error
它包含有關錯誤訊息和標題的一些其他樣式規則。 當您建立自己的表單(可能需要不同的樣式和輸入字段)時,可以將本節中html和css用作專案的基礎。
您可以使用以下sql快速建立表。
create table `users` (
`id` int(10) unsigned not null auto_increment,
`username` varchar(25) not null,
`password` varchar(255) not null,
`email` varchar(100) not null,
primary key (`id`),
unique key `username` (`username`)
) engine=innodb default charset=utf8 collate=utf8_unicode_ci auto_increment=1;
現在,建立乙個名為config.php的檔案,並在其中編寫以下**以連線到資料庫。
<?php
define('user', 'root');
define('password', '');
define('host', 'localhost');
define('database', 'test');
try catch (pdoexception $e)
?>
將資料庫名稱更改為您的資料庫名稱。 該檔案將用於建立與資料庫的連線。
終於到了實現註冊功能的時候了。 該**的主要功能是檢查提供的電子郵件是否已經註冊。 如果不是,我們在資料庫中輸入使用者名稱,電子郵件和密碼。
將以下**放在registration.php的頂部。
<?php
include('config.php');
session_start();
if (isset($_post['register']))
if ($query->rowcount() == 0) else
}}?>
第一步是包括config.php並啟動會話。 這有助於我們在頁面上儲存要保留的所有資訊。
接下來,我們通過檢查$ _post ['register']是否已設定來檢查使用者是否單擊了register按鈕來提交表單。 始終記住,將密碼儲存為純文字不是乙個好主意。 因此,我們使用password_hash()函式,然後將該雜湊儲存在我們的資料庫中。 此特定函式使用隨機生成的鹽建立60個字元的雜湊。
最後,我們執行查詢並檢查給定電子郵件位址是否存在非零行號。 如果是這樣,則使用者將收到一條訊息,指出該電子郵件位址已被註冊。
如果給定的電子郵件位址不存在任何行,我們將提供的資訊輸入資料庫,並讓使用者知道註冊成功。
在最後一步中,我們編寫了用於登入使用者的**。這一次,我們僅檢查資料庫中的資訊,以檢視輸入到表單中的使用者名稱和密碼組合是否正確。
這是位於login.php頂部的**。
<?php
include('config.php');
session_start();
if (isset($_post['login'])) else else
}}?>
這裡要注意的重要一件事是,我們不會一步一步比較使用者名稱和密碼。 由於密碼實際上是以雜湊形式儲存的,因此我們首先需要借助提供的使用者名稱來獲取雜湊。 一旦有了雜湊,就可以使用password_verify()
函式比較密碼和雜湊。
成功確認密碼後,我們將$_session['user_id']
變數設定為資料庫中該使用者的id。 您還可以在此處設定其他變數的值。
要求使用者註冊的大多數**都有一些其他頁面,使用者可以在其中訪問和儲存私人資料。 您可以使用會話變數來保護這些頁面。 如果未設定會話變數,只需將使用者重定向到登入頁面。 否則,請向他們顯示頁面的內容。
<?php
session_start();
if(!isset($_session['user_id'])) else
?>
您唯一要做的就是確保指令碼在開始時包含session_start()
。
在本教程中,我們學習了如何使用php建立基本的使用者註冊和登入系統。 一旦掌握了登入和註冊系統的基礎知識,就可以建立更複雜的邏輯,從而允許使用者重置密碼,驗證電子郵件位址等。
翻譯自:
建立乙個登入頁面驗證
1.首先建立乙個django 配置 1 settings.py 配置 靜態檔案路徑拼接 staticfiles dirs os.path.join base dir,static 資料庫配置 databases 注釋掉settings.py中的middleware中的 django.middlewa...
php 建立乙個日曆
1 時間戳 表示從計算機元年 unix紀年 0時區 1970 1 1 00 00 00 到當前事件的秒數。是乙個長整形的數字。2 取到時間戳的函式 time 返回當前時間的時間戳 mktime 根據設定的時間,返回時間戳。設定的格式 時,分,秒,月,日,年 strtotime 將輸入的字串日期轉為時...
乙個表單的建立與驗證
例項展示 樣式左邊的span 設定寬度,display inline block,text align right 就可以右對齊了 js頁面的html布局 聯絡 正則校驗 的方法 function checkmobile str if str.match reg else 頁面中呼叫的方法 申請的按...