新聞中心
在現(xiàn)代互聯(lián)網(wǎng)時(shí)代,登錄注冊(cè)系統(tǒng)作為Web應(yīng)用程序的核心組件,扮演著重要的角色。防止未經(jīng)授權(quán)的訪問和數(shù)據(jù)泄露是登錄注冊(cè)系統(tǒng)的首要職責(zé)。PHP作為一種開源、快速、簡(jiǎn)單的腳本語(yǔ)言,與MySQL數(shù)據(jù)庫(kù)完美結(jié)合,成為一種廣泛使用的Web開發(fā)技術(shù)。本文將介紹如何使。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供婺源網(wǎng)站建設(shè)、婺源做網(wǎng)站、婺源網(wǎng)站設(shè)計(jì)、婺源網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、婺源企業(yè)網(wǎng)站模板建站服務(wù),10多年婺源做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
一、用戶注冊(cè)功能
1.1 數(shù)據(jù)庫(kù)創(chuàng)建及表結(jié)構(gòu)設(shè)計(jì)
使用MySQL數(shù)據(jù)庫(kù)來存儲(chǔ)用戶信息,需要先創(chuàng)建相關(guān)的表結(jié)構(gòu)。表名可以取名為user_info,具體的表字段包括:
– user_id:用戶ID,自增長(zhǎng)主鍵。
– user_name:用戶名,用于登錄及顯示的名稱。
– user_pwd:用戶密碼,存儲(chǔ)密碼哈希值。
– user_eml:用戶郵箱,用于找回密碼等功能。
– user_salt:用戶鹽值,增加密碼的復(fù)雜度,可以使用隨機(jī)字符串等方式生成。
下面是用戶信息表的建表語(yǔ)句:
CREATE TABLE `user_info`(
`user_id` INT(11) NOT NULL AUTO_INCREMENT,
`user_name` VARCHAR(50) NOT NULL COMMENT ‘用戶名’,
`user_pwd` VARCHAR(255) NOT NULL COMMENT ‘用戶密碼’,
`user_eml` VARCHAR(50) NOT NULL COMMENT ‘用戶郵箱’,
`user_salt` VARCHAR(32) NOT NULL COMMENT ‘用戶鹽值’,
PRIMARY KEY (`user_id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT=’用戶信息表’;
1.2 注冊(cè)頁(yè)面設(shè)計(jì)
注冊(cè)頁(yè)面是用戶注冊(cè)的入口,需要采用一定的設(shè)計(jì)和排版,以方便用戶填寫信息。在本例中,我們使用Bootstrap框架來構(gòu)建基本結(jié)構(gòu),包括表單、輸入項(xiàng)、提交按鈕等。核心代碼如下:
用戶注冊(cè)
用戶注冊(cè)
用戶名
郵箱
密碼
注冊(cè)
1.3 注冊(cè)功能實(shí)現(xiàn)
在注冊(cè)頁(yè)面填寫完信息,點(diǎn)擊提交按鈕后,需要將表單數(shù)據(jù)傳輸?shù)椒?wù)器端,并將信息保存到數(shù)據(jù)庫(kù)中。具體實(shí)現(xiàn)過程如下:
– 獲取表單數(shù)據(jù),包括用戶名、密碼、郵箱等信息。
– 對(duì)密碼進(jìn)行加鹽哈希處理,把用戶名和鹽值也保存在數(shù)據(jù)庫(kù)中。
– 如果注冊(cè)成功,直接跳轉(zhuǎn)到登錄頁(yè)面;如果注冊(cè)失敗,返回注冊(cè)頁(yè)面并給出相應(yīng)的提示信息。
下面是register.php的代碼,是服務(wù)器端與數(shù)據(jù)庫(kù)連接的核心文件:
require_once ‘db_config.php’;
if($_SERVER[‘REQUEST_METHOD’] == ‘POST’) {
// 獲取表單數(shù)據(jù)
$username = trim($_POST[‘username’]);
$eml = trim($_POST[’eml’]);
$password = trim($_POST[‘password’]);
$salt = md5(uniqid(rand()));
// 對(duì)密碼進(jìn)行哈希加鹽
$hash = hash(‘sha256’, $password . $salt);
// 插入用戶信息
$stmt = $pdo->prepare(“INSERT INTO user_info (user_name, user_pwd, user_eml, user_salt)
VALUES (:uname, :upwd, :ueml, :usalt)”);
$stmt->bindParam(‘:uname’, $username);
$stmt->bindParam(‘:upwd’, $hash);
$stmt->bindParam(‘:ueml’, $eml);
$stmt->bindParam(‘:usalt’, $salt);
if ($stmt->execute()) {
// 注冊(cè)成功,跳轉(zhuǎn)到登錄頁(yè)面
header(‘Location: login.php’);
exit();
} else {
// 注冊(cè)失敗,返回注冊(cè)頁(yè)面
echo “注冊(cè)失敗,請(qǐng)重新注冊(cè)”;
}
}
?>
二、用戶登錄功能
2.1 登錄頁(yè)面設(shè)計(jì)
登錄頁(yè)面與注冊(cè)頁(yè)面類似,需要采用基本的設(shè)計(jì)和排版,以方便用戶填寫信息。在本例中,我們使用Bootstrap框架來構(gòu)建基本結(jié)構(gòu),包括表單、輸入項(xiàng)、提交按鈕等。核心代碼如下:
用戶登錄
用戶登錄
用戶名
密碼
登錄
2.2 登錄功能實(shí)現(xiàn)
在登錄頁(yè)面填寫完信息,點(diǎn)擊提交按鈕后,需要將表單數(shù)據(jù)傳輸?shù)椒?wù)器端,并根據(jù)數(shù)據(jù)庫(kù)中的用戶信息進(jìn)行驗(yàn)證。具體實(shí)現(xiàn)過程如下:
– 獲取表單數(shù)據(jù),包括用戶名、密碼等信息。
– 查詢數(shù)據(jù)庫(kù)中是否存在用戶名,如果存在,則獲取對(duì)應(yīng)的哈希密碼和鹽值。
– 對(duì)密碼進(jìn)行加鹽哈希處理,并與數(shù)據(jù)庫(kù)中的哈希值進(jìn)行比較。
– 如果密碼正確,則創(chuàng)建新的Session并將用戶信息保存到Session中;否則返回登錄頁(yè)面并給出相應(yīng)的提示信息。
下面是login.php的代碼,是服務(wù)器端與數(shù)據(jù)庫(kù)連接的核心文件:
require_once ‘db_config.php’;
// 開啟Session
if (!isset($_SESSION)) {
session_start();
}
if($_SERVER[‘REQUEST_METHOD’] == ‘POST’) {
// 獲取表單數(shù)據(jù)
$username = trim($_POST[‘username’]);
$password = trim($_POST[‘password’]);
// 查詢用戶信息
$stmt = $pdo->prepare(“SELECT user_id, user_name, user_pwd, user_salt FROM user_info WHERE user_name = :uname”);
$stmt->bindParam(‘:uname’, $username);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row) {
// 對(duì)密碼進(jìn)行哈希加鹽
$hash = hash(‘sha256’, $password . $row[‘user_salt’]);
// 比較哈希值是否一致
if ($hash == $row[‘user_pwd’]) {
// 創(chuàng)建新的Session并保存用戶信息
$_SESSION[‘user_id’] = $row[‘user_id’];
$_SESSION[‘user_name’] = $row[‘user_name’];
// 跳轉(zhuǎn)到用戶中心頁(yè)面
header(‘Location: user.php’);
exit();
}
}
// 密碼錯(cuò)誤或用戶名不存在,返回登錄頁(yè)面
echo “用戶名或密碼錯(cuò)誤,請(qǐng)重新輸入”;
}
?>
三、用戶中心頁(yè)面
在用戶登錄成功后,將自動(dòng)跳轉(zhuǎn)到用戶中心頁(yè)面。該頁(yè)面可以展示用戶基本信息、收藏、歷史記錄等,也可以提供修改密碼、退出登錄等功能。在本例中,我們只實(shí)現(xiàn)了展示用戶基本信息的功能。
3.1 用戶中心頁(yè)面設(shè)計(jì)
用戶中心頁(yè)面需要展示用戶基本信息,包括用戶名、郵箱等。頁(yè)面結(jié)構(gòu)可以采用Bootstrap框架的柵格布局,也可以使用其他CSS樣式庫(kù)。核心代碼如下:
用戶中心
用戶中心
| 用戶名 | |
|---|---|
| 郵箱 |
退出登錄
3.2 用戶中心頁(yè)面實(shí)現(xiàn)
用戶中心頁(yè)面需要從Session中獲取用戶信息,以便展示在頁(yè)面上。如果Session中不存在用戶信息,則返回登錄頁(yè)面。具體實(shí)現(xiàn)思路如下:
– 從Session中獲取用戶信息,包括用戶ID、用戶名、郵箱等。
– 根據(jù)用戶ID查詢數(shù)據(jù)庫(kù)中的用戶信息,以獲取完整的用戶信息。
– 如果用戶信息不存在,則返回登錄頁(yè)面。
– 如果用戶信息存在,顯示用戶中心頁(yè)面并展示用戶信息。
下面是user.php的代碼,根據(jù)Session中的用戶ID,查詢數(shù)據(jù)庫(kù)中的用戶信息,并將信息保存在Session中:
require_once ‘db_config.php’;
// 開啟Session
if (!isset($_SESSION)) {
session_start();
}
// 獲取用戶信息
if (isset($_SESSION[‘user_id’])) {
$user_id = $_SESSION[‘user_id’];
$stmt = $pdo->prepare(“SELECT user_name, user_eml FROM user_info WHERE user_id = :uid”);
$stmt->bindParam(‘:uid’, $user_id);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$row) {
// 用戶信息不存在,返回登錄頁(yè)面
header(‘Location: login.php’);
exit();
}
// 保存用戶信息到Session中
$_SESSION[‘user_name’] = $row[‘user_name’];
$_SESSION[‘user_eml’] = $row[‘user_eml’];
} else {
// 用戶未登錄,返回登錄頁(yè)面
header(‘Location: login.php’);
exit();
}
?>
四、連接數(shù)據(jù)庫(kù)
在本文的實(shí)例中,我們采用PDO連接MySQL數(shù)據(jù)庫(kù),這是一種強(qiáng)大的抽象數(shù)據(jù)接口技術(shù),可以與各種關(guān)系型數(shù)據(jù)庫(kù)方便地集成。在db_config.php文件中,我們定義了連接數(shù)據(jù)庫(kù)使用的用戶名、密碼、主機(jī)和端口等參數(shù)。核心代碼如下:
// 數(shù)據(jù)庫(kù)連接信息
$host = ‘localhost’;
$dbname = ‘test_db’;
$username = ‘root’;
$password = ‘123456’;
$port = ‘3306’;
$charset = ‘utf8mb4’;
// 連接數(shù)據(jù)庫(kù)
$dsn = “mysql:host=$host;dbname=$dbname;port=$port;charset=$charset”;
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // 錯(cuò)誤異常拋出
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // 默認(rèn)獲取關(guān)聯(lián)數(shù)組
];
try {
$pdo = new PDO($dsn, $username, $password, $opt);
} catch(PDOException $e) {
die(‘?dāng)?shù)據(jù)庫(kù)連接失?。骸?. $e->getMessage());
}
?>
通過本文的學(xué)習(xí),我們了解了如何使。注冊(cè)登錄系統(tǒng)是Web應(yīng)用程序設(shè)計(jì)的基礎(chǔ)組成部分,掌握這一基本知識(shí)對(duì)Web開發(fā)者來說至關(guān)重要。PHP作為一種流行的服務(wù)器端腳本語(yǔ)言,能夠輕松地連接MySQL數(shù)據(jù)庫(kù),并實(shí)現(xiàn)對(duì)用戶信息的CRUD操作。希望本文的實(shí)例能夠?qū)ψx者在實(shí)際開發(fā)中提供一定的幫助。
相關(guān)問題拓展閱讀:
- 求PHP用戶登錄信息寫入數(shù)據(jù)庫(kù)的代碼!
求PHP用戶登錄信息寫入數(shù)據(jù)庫(kù)的代碼!
靜態(tài)頁(yè)面
用戶名:
密碼
//login.php接收頁(yè)面
感覺你不懷好意啊
不過還是說說,在HTML頁(yè)面,也就是你上面的這個(gè)頁(yè)面輸入信息察物提交:
把信息提交給動(dòng)態(tài)頁(yè)面,讓他先保存數(shù)基汪據(jù),再對(duì)數(shù)據(jù)庫(kù)做會(huì)員檢測(cè),如果會(huì)員存在就寫一下登錄信息,
一個(gè)頁(yè)面是可以完成,注冊(cè)-到登錄。不過也有敗鋒液一個(gè)問題,如果會(huì)員隨便寫一個(gè)密碼也是可以登錄的。
因?yàn)槟銦o法知道他真正的密碼。
唉,登陸的登陸,注冊(cè)是注冊(cè),登陸是和數(shù)據(jù)庫(kù)里的用戶名密碼做比對(duì),如果是有,就可以登陸。
php注冊(cè)登錄 加數(shù)據(jù)庫(kù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于php注冊(cè)登錄 加數(shù)據(jù)庫(kù),用PHP編寫注冊(cè)登錄系統(tǒng)并與數(shù)據(jù)庫(kù)連接,求PHP用戶登錄信息寫入數(shù)據(jù)庫(kù)的代碼!的信息別忘了在本站進(jìn)行查找喔。
成都服務(wù)器租用選創(chuàng)新互聯(lián),先試用再開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。物理服務(wù)器托管租用:四川成都、綿陽(yáng)、重慶、貴陽(yáng)機(jī)房服務(wù)器托管租用。
標(biāo)題名稱:用PHP編寫注冊(cè)登錄系統(tǒng)并與數(shù)據(jù)庫(kù)連接 (php注冊(cè)登錄 加數(shù)據(jù)庫(kù))
URL標(biāo)題:http://www.dlmjj.cn/article/cddgsoj.html


咨詢
建站咨詢
