php100视频里的一个会员登录系统实例,虽然很小,但里面的一些基本功能实现还是不错的,
分为三个文件,如下:
config.php
<?php
session_start();
$conn=mysql_connect('localhost','root','a123456') or die("连接错误");
mysql_select_db("xuexi",$conn) or die("数据库错误");
mysql_query("set names'utf8'");
define(ALL_PS,"ljzhen");//为ljzhen在做加密,保证用户的安全性。
function user_shell($uid,$shell,$yid){ //这里定义了变量
$sql="select * from login_user where `uid`='$uid'";
$query=mysql_query($sql);
$us=is_array($row=mysql_fetch_array($query));
$shell=$us ? $shell=md5($row[username].$row[userpass].ALL_PS) :FALSE;
if($shell){
if($row[yid]<=$yid){ //判断用户权限,条件满足时,即可访问该页面
return $row;
}else{
echo "你的权限不足,无法访问该那面";
echo "<a href="login.php" mce_href="login.php">返回【查看权限】重新登陆</a>";
exit();
}
}else{
echo "你无权限访问该页面!";
echo "<a href="login.php" mce_href="login.php">返回重新登陆</a>";
exit();
}
}
function user_mktime($onlinetime){
$new_time=mktime();
echo $new_time-$onlinetime; //当前时间减去用户登陆时间
if($new_time-$onlinetime>'100'){ //判断登陆时间超过我们制定时间后,自动踢出!
echo "登陆超时";
session_destroy();//清除session中的值
exit();
}else{
$_SESSION[times]=mktime(); //及时更新时间,即用户有操作页面时,重新计算时间
}
}
?>
login.php
<?php
include("config.php");
@header("content-type:text/html; charset=UTF-8");
//
//echo md5("admin".ALL_PS);//采用admin和前面的LJZHEN同时加密
if($_POST[submit]){
$username=str_replace(" ","",$_POST[username]);
$sql="select * from login_user where `username`='$username'";
$query=mysql_query($sql);
$us=is_array($row=mysql_fetch_array($query));//这里判断用户名是否为真
$ps= $us ? md5($_POST[password].ALL_PS)==$row[userpass] : FALSE;//这里判断用户名和密码是否为真
if($ps){ //这里对$ps进行判断
$_SESSION[uid]=$row[uid]; //获取ID存入SESSION
$_SESSION[user_shell]=md5($row[username].$row[userpass].ALL_PS); //这里在对用户和密码进一层加密
$_SESSION[times]=mktime();
echo "<a href="login_sys.php" mce_href="login_sys.php">登陆成功,点击【进入】操作</a>";
}else{
echo "用户名或密码错误!";
session_destroy();
}
}
?>
<?php
//echo $_SESSION[uid];
//echo $_SESSION[uname];
?>
<form action="" method="post"">
用户: <input type="text" name="username" size="40" maxlength="40"/>
<br/>
密码: <input type="text" name="password" size="40" maxlength="40"/>
<br/>
<input type="submit" name="submit" value="登陆" style="width:50px; height:25px;"/>
</form>
login_sys.php
<?php
include("config.php");
@header("content-type:text/html; charset=UTF-8");
//$_SESSION[uid];
//$_SESSION[user_shell];
$arr=user_shell($_SESSION[uid],$_SESSION[user_shell],1); //获取登陆用户信息--2是表示用户的权限设置的
//echo $arr[username]."<br>";
user_mktime($_SESSION[times]); //使用user_mktime类方法
if($_GET[out]){ //注销当前用户
unset($_SESSION[uid]);
unset($_SESSION[user_shell]);
echo"<mce:script type="text/javascript"><!--
location.href='login_sys.php'
// --></mce:script>";//刷新当前页面
}
echo "<a href="login_sys.php?out=out" mce_href="login_sys.php?out=out">退出</a>";
?>
分为三个文件,如下:
config.php
<?php
session_start();
$conn=mysql_connect('localhost','root','a123456') or die("连接错误");
mysql_select_db("xuexi",$conn) or die("数据库错误");
mysql_query("set names'utf8'");
define(ALL_PS,"ljzhen");//为ljzhen在做加密,保证用户的安全性。
function user_shell($uid,$shell,$yid){ //这里定义了变量
$sql="select * from login_user where `uid`='$uid'";
$query=mysql_query($sql);
$us=is_array($row=mysql_fetch_array($query));
$shell=$us ? $shell=md5($row[username].$row[userpass].ALL_PS) :FALSE;
if($shell){
if($row[yid]<=$yid){ //判断用户权限,条件满足时,即可访问该页面
return $row;
}else{
echo "你的权限不足,无法访问该那面";
echo "<a href="login.php" mce_href="login.php">返回【查看权限】重新登陆</a>";
exit();
}
}else{
echo "你无权限访问该页面!";
echo "<a href="login.php" mce_href="login.php">返回重新登陆</a>";
exit();
}
}
function user_mktime($onlinetime){
$new_time=mktime();
echo $new_time-$onlinetime; //当前时间减去用户登陆时间
if($new_time-$onlinetime>'100'){ //判断登陆时间超过我们制定时间后,自动踢出!
echo "登陆超时";
session_destroy();//清除session中的值
exit();
}else{
$_SESSION[times]=mktime(); //及时更新时间,即用户有操作页面时,重新计算时间
}
}
?>
login.php
<?php
include("config.php");
@header("content-type:text/html; charset=UTF-8");
//
//echo md5("admin".ALL_PS);//采用admin和前面的LJZHEN同时加密
if($_POST[submit]){
$username=str_replace(" ","",$_POST[username]);
$sql="select * from login_user where `username`='$username'";
$query=mysql_query($sql);
$us=is_array($row=mysql_fetch_array($query));//这里判断用户名是否为真
$ps= $us ? md5($_POST[password].ALL_PS)==$row[userpass] : FALSE;//这里判断用户名和密码是否为真
if($ps){ //这里对$ps进行判断
$_SESSION[uid]=$row[uid]; //获取ID存入SESSION
$_SESSION[user_shell]=md5($row[username].$row[userpass].ALL_PS); //这里在对用户和密码进一层加密
$_SESSION[times]=mktime();
echo "<a href="login_sys.php" mce_href="login_sys.php">登陆成功,点击【进入】操作</a>";
}else{
echo "用户名或密码错误!";
session_destroy();
}
}
?>
<?php
//echo $_SESSION[uid];
//echo $_SESSION[uname];
?>
<form action="" method="post"">
用户: <input type="text" name="username" size="40" maxlength="40"/>
<br/>
密码: <input type="text" name="password" size="40" maxlength="40"/>
<br/>
<input type="submit" name="submit" value="登陆" style="width:50px; height:25px;"/>
</form>
login_sys.php
<?php
include("config.php");
@header("content-type:text/html; charset=UTF-8");
//$_SESSION[uid];
//$_SESSION[user_shell];
$arr=user_shell($_SESSION[uid],$_SESSION[user_shell],1); //获取登陆用户信息--2是表示用户的权限设置的
//echo $arr[username]."<br>";
user_mktime($_SESSION[times]); //使用user_mktime类方法
if($_GET[out]){ //注销当前用户
unset($_SESSION[uid]);
unset($_SESSION[user_shell]);
echo"<mce:script type="text/javascript"><!--
location.href='login_sys.php'
// --></mce:script>";//刷新当前页面
}
echo "<a href="login_sys.php?out=out" mce_href="login_sys.php?out=out">退出</a>";
?>