學習PHP好久啦,對PHP語言也熟悉啦,想設計簡單的會員系統,內容包括:建立數據庫和表、會員註冊、會員登陸、會員權限設置。涉及到的知識點:md5加密,Cookie/Session建立、使用、銷燬等。下面將詳細介紹怎樣開發一個簡單會員系統。 php
one,Window+Apache+MySQL+PHP集成開發環境,你們能夠在網上下載。 mysql
建立數據庫和表。在phpAdmin中建立一個名爲member的數據庫,在其中創建一種會員表,表名爲:user_list, 其中主要字段包括:uid(會員ID值)、m_id(會員權限)、username(用戶名)、password(密碼)。關於表格中各字段的詳細介紹以下表: sql
two,寫一個配置文件。該配置文件主要信息:開啓Session設置;鏈接數據庫;密碼安全附加信息;用戶判斷用戶是否登陸,以及其是否具備訪問權限的函數;用於查看會員登陸是否超時的函數。具體代碼以下: shell
<?php 數據庫
//開啓Session設置 安全
session_start(); session
//鏈接數據庫 函數
$conn=mysql_connect('localhost', 'root', ''); post
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。具體代碼以下<?php include("config.php");
if($_POST['submit']){
$username= str_replace(" ","", $_POST['username']);
echo $username."<br>";
$password = md5($_POST['password'].ALL_PS);
echo $password."<br>";
$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 "註冊失敗";
}
}
?>
<form action="" method="post">
用戶名:<input type="text" name="username" /><br>
密--碼:<input type="password" name="password" /><br>
<input type="submit" name="submit" value="註冊" /><br>
</form>
進行會員註冊。這裏咱們能夠經過咱們編寫的註冊頁面進行會員的註冊,註冊後的信息會添加入相應的數據庫中,如圖:
會員登陸頁面編寫。新建一個會員登入的頁面,命名爲user.php。具體代碼以下:
<?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."<br>";
$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']."<br>";
echo "登陸成功";
}else{
echo "用戶名或密碼錯誤";
session_destroy();
}
}
?>
<form action="" method="post">
用戶名:<input type="text" name="username" /><br>
密--碼:<input type="password" name="password" /><br>
<input type="submit" name="submit" value="登陸" /><br>
</form>
會員訪問的頁面的建立。新建一個會員訪問的界面,命名爲user_sys.php,這個頁面中要進行會員是否登陸以及是否有訪問權限的設置,具體代碼以下:
<?php
include("config.php");
//echo $_SESSION['uid']."<br>";
//echo $_SESSION['user_shell'];
$arr = user_shell($_SESSION['uid'] , $_SESSION['user_shell'], 4);
echo $_SESSION['times']."<br>";
echo mktime();
echo "用戶名:".$arr['username']."<br>";
echo "密碼:".$arr['password']."<br>";
echo "m_id:".$arr['m_id']."<br>";
user_mktime($_SESSION['times']);
?>
權限內容
至此,咱們的一個簡單的會員系統就開發完成。圖:
至此,會員登陸系統設計完畢
end,練習一下