學習PHP很久啦,對PHP語言也熟悉啦,想設計簡單的會員系統,內容包括:建立資料庫和表、會員註冊、會員登入、會員使用權限設定。涉及到的知識點:md5加密,Cookie/Session建立、使用、銷毀等。下面將詳細介紹怎樣開發一個簡單會員系統。
one,Window+Apache+MySQL+PHP整合式開發環境,大家可以在網上下載。
建立資料庫和表。在phpAdmin中建立一個名為member的資料庫,在其中建立一種會員表,表名為:user_list, 其中主要欄位包括:uid(會員ID值)、m_id(會員許可權)、username(使用者名稱)、password(密碼)。關於表格中各欄位的詳細介紹如下表:
two,寫一個設定檔。該設定檔主要資訊:開啟Session設定;串連資料庫;密碼安全附加資訊;使用者判斷使用者是否登入,以及其是否具有存取權限的函數;用於查看會員登入是否逾時的函數。具體代碼如下:
//開啟Session設定
session_start();
//串連資料庫
$conn=mysql_connect('localhost', 'root', '');
mysql_select_db('member', $conn);
//密碼安全附加資訊
define(ALL_PS, "PHP100");
//使用者判斷使用者是否登入,以及其是否具有存取權限
function user_shell($uid, $shell, $m_id){
$sql = "select * from user_list where uid = '$uid' ";
$query = mysql_query($sql);
$us = is_array($row = mysql_fetch_array($query));
$shell = $us ? $shell == md5($row['username'].$row['password'].ALL_PS) : FALSE;
if($shell){
if($row['m_id']<= $m_id){
return $row;
}else{
echo "你的許可權不足";
exit();
}
}else{
echo "你無許可權訪問該頁面";
exit();
}
}
// 查看會員登入是否逾時
function user_mktime($onlinetime){
$new_time = mktime();
if($new_time-$onlinetime > '10'){
echo "登入逾時";
session_destroy();
}else{
$_SESSION['times'] = mktime(); //更新目前時間
}
}
?>
會員註冊頁面編寫。建立一個會員註冊的頁面,命名為login.php。具體代碼如下
if($_POST['submit']){
$username= str_replace(" ","", $_POST['username']);
echo $username."
";
$password = md5($_POST['password'].ALL_PS);
echo $password."
";
$sql = "insert into user_list(uid, m_id,username,password) values(null, '0', '$username', '$password' ) ";
$query = mysql_query($sql);
//獲得受影響的行數
$row=mysql_affected_rows($conn);
if($row>0)
{
echo "註冊成功";
}else{
echo "註冊失敗";
}
}
?>
進行會員註冊。這裡我們可以通過我們編寫的註冊頁面進行會員的註冊,註冊後的資訊會添加入相應的資料庫中,
會員登入頁面編寫。建立一個會員登入的頁面,命名為user.php。具體代碼如下:
include("config.php");
if($_POST['submit']){
$username= $_POST['username'];
$sql = "select * from user_list where username = '$username' ";
$query = mysql_query($sql);
$us = is_array($row = mysql_fetch_array($query));
echo $us."
";
$ps = $us ? md5($_POST['password'].ALL_PS) == $row['password'] : FALSE;
if($ps){
$_SESSION['uid'] = $row['uid'];
$_SESSION['user_shell'] = md5($row['username'].$row['password'].ALL_PS);
$_SESSION['times'] = mktime(); //登入的時間
echo $_SESSION['times']."
";
echo "登入成功";
}else{
echo "使用者名稱或密碼錯誤";
session_destroy();
}
}
?>
會員訪問的頁面的建立。建立一個會員訪問的介面,命名為user_sys.php,這個頁面中要進行會員是否登入以及是否有存取權限的設定,具體代碼如下:
include("config.php");
//echo $_SESSION['uid']."
";
//echo $_SESSION['user_shell'];
$arr = user_shell($_SESSION['uid'] , $_SESSION['user_shell'], 4);
echo $_SESSION['times']."
";
echo mktime();
echo "使用者名稱:".$arr['username']."
";
echo "密碼:".$arr['password']."
";
echo "m_id:".$arr['m_id']."
";
user_mktime($_SESSION['times']);
?>
許可權內容
7
至此,我們的一個簡單的會員系統就開發完成。圖:
至此,會員登入系統設計完畢
end,練習一下