学习PHP很久啦,对PHP语言也熟悉啦,想设计简单的会员系统,内容包括:创建数据库和表、会员注册、会员登录、会员权限设置。涉及到的知识点:md5加密,Cookie/Session创建、使用、销毁等。下面将详细介绍怎样开发一个简单会员系统。
one,Window+Apache+MySQL+PHP集成开发环境,大家可以在网上下载。
创建数据库和表。在phpAdmin中创建一个名为member的数据库,在其中建立一种会员表,表名为:user_list, 其中主要字段包括:uid(会员ID值)、m_id(会员权限)、username(用户名)、password(密码)。关于表格中各字段的详细介绍如下表:
two,写一个配置文件。该配置文件主要信息:开启Session设置;连接数据库;密码安全附加信息;用户判断用户是否登录,以及其是否具有访问权限的函数;用于查看会员登录是否超时的函数。具体代码如下:
-
<?php
//开启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。具体代码如下<?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']);
?>
权限内容
-
7
至此,我们的一个简单的会员系统就开发完成。图:
至此,会员登录系统设计完毕
end,练习一下
-