作者在 2011-11-09 20:11:06 发布以下内容
这个是PHP会员登录,这个源码我是看PHP100视频教程学的,我分享给大家看看,其实呢?PHP登录可以有许多写法,但是这种写法是很安全,包括了权限及登录超时。
以下是源码;
登录源码:
<?php
/*
Admin登陆
*/
include("conn.php");
md5("admin".ALL_PS);
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));
$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 "<center><font color=red>登陆成功";
}//做个验证码判断
}else{
echo "<center><font color=red>用户名和密码错误";
session_destroy();
}
if($_POST[cehck]){
if($_POST[cehck]==$_SESSION[check_pc]){
echo "验证码正确";
}else{
echo "验证码错误";
}
}
?>
<h1></h1>
<h2 align="center">管理员登陆</h2>
<center><form action="" method="post" name="myformn" onsubmit="return chekpost()">
管理员:<input type="text" name="username"/><br/>
密 码:<input type="password"size="21" name="password"/>
验证码: <input type="text" size="10" name="cehck"/><img src="che.php">
<input type="submit" name="submit" value="提交"/>
<input type="reset" name="rest" value="重置"/
</form>
权限判断(这个采用的是方法)/*
Admin登陆
*/
include("conn.php");
md5("admin".ALL_PS);
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));
$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 "<center><font color=red>登陆成功";
}//做个验证码判断
}else{
echo "<center><font color=red>用户名和密码错误";
session_destroy();
}
if($_POST[cehck]){
if($_POST[cehck]==$_SESSION[check_pc]){
echo "验证码正确";
}else{
echo "验证码错误";
}
}
?>
<h1></h1>
<h2 align="center">管理员登陆</h2>
<center><form action="" method="post" name="myformn" onsubmit="return chekpost()">
管理员:<input type="text" name="username"/><br/>
密 码:<input type="password"size="21" name="password"/>
验证码: <input type="text" size="10" name="cehck"/><img src="che.php">
<input type="submit" name="submit" value="提交"/>
<input type="reset" name="rest" value="重置"/
</form>
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;
$row[username]."
";
$row[m_id];
if($shell){
if($row[m_id]<=$m_id){
return $row;
}else{
echo "你的权限不足";
exit();
}
}else{
echo "你无权限访问该页";
exit();
}
}
user_shell($_SESSION[uid], $_SESSION[user_shell],1);
登录超时(这个采用的是方法)$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;
$row[username]."
";
$row[m_id];
if($shell){
if($row[m_id]<=$m_id){
return $row;
}else{
echo "你的权限不足";
exit();
}
}else{
echo "你无权限访问该页";
exit();
}
}
user_shell($_SESSION[uid], $_SESSION[user_shell],1);
function user_mktime($onlinetime){
$new_time=mktime();
$new_time-$onlinetime;
echo $new_time-$onlinetime;
if($new_time-$onlinetime>'20'){
echo "登陆超时";
exit();
session_destroy();//注销session
}else{
$_SESSION[time]=mktime();
}
}
user_mktime($_SESSION[times]);
总结$new_time=mktime();
$new_time-$onlinetime;
echo $new_time-$onlinetime;
if($new_time-$onlinetime>'20'){
echo "登陆超时";
exit();
session_destroy();//注销session
}else{
$_SESSION[time]=mktime();
}
}
user_mktime($_SESSION[times]);
其实大家学习别人代码在于创新和使用,不要完全模仿别人代码使用,这是学习的一种方法,同时也要学会看别人的代码。我们可以用以上代码在加上smart框架做个完整的后台,哎!我现在没有验证码,因为我还不会将验证码程序加载到表单做登录的验证程序!忘大家多多指导!