最近弄了个主页,想要添加一个文件存储系统,这就涉及到身份验证,本来想弄个注册登录系统的,后来发现个人站没有必要,于是就写了一个身份验证的系统。
思路就是用php与mysql结合,实现非常简单,只要学一下php基本就能搞定。(学习php:http://www.w3school.com.cn/php/index.asp)
该系统包含文件:
login.php 登录主页面
loginCheck.php 检查登录
connect.php 连接到数据库
checkA.php 检查是否登录
logout.php 登出
然后就是各文件了,我相信不需要注释也能看懂:
login.php:包含登录页面的表单,将数据提交到loginCheck.php,密码采用md5.


1 <html> 2 <head><title>Login As Administrator</title></head> 3 <style type="text/css"> 4 #di { 5 font-size: 30px; 6 color: #FFFFFF; 7 } 8 .style1 { 9 color: #FFFFFF; 10 } 11 </style> 12 <body style='background-color: #000000'> 13 14 <div id="di" align="center">Login As Administrator</div> 15 <br /><hr width="400" /><br /> 16 <form action="loginCheck.php" name="loginform" id="loginform" method="post" align="center"> 17 <div class="style1" align="center">User Name:<input type="text" id="username" name="username" /></div><br /><br /> 18 <div class="style1" align="center">Password:<input type="password" id="userpass" name="userpass" /></div><br/><br /> 19 <div align="center"><input type="submit" name="submit" id="submit" value="Login" /></div> 20 </form> 21 <br /> 22 </body> 23 </html>
connect.php:连接到数据库并打开session


1 <?php 2 $con = mysql_connect("localhost" , "root" , "Azittecal"); 3 mysql_select_db('login') or die('Error!'); 4 mysql_query("set names 'gb2312'"); 5 ?>
loginCheck.php:从数据库中搜索用户名,然后匹配密码,如果成功就提示并跳转到管理页面,否则提示登录失败和相关信息。


1 <?php 2 $lifeTime = 24 * 3600; 3 $sessionName = session_name(); 4 $sessionID = $_GET[$sessionName]; 5 session_id($sessionID); 6 session_set_cookie_params($lifeTime); 7 session_start(); 8 include_once 'connect.php'; 9 10 $username = $_POST["username"]; 11 $userpass = $_POST["userpass"]; 12 13 $userpass = md5($userpass); 14 15 $query = mysql_query("select * from user where username='" . $username . "'"); 16 17 $row = mysql_fetch_array($query); 18 if($row['username']) 19 { 20 if($row['userpass'] == $userpass) 21 { 22 $_SESSION['username'] = $username; 23 echo "<script language='javascript'>alert('Login success!');location='manage.php';</script>"; 24 } 25 else 26 { 27 echo "<script language='javascript'>alert('Password Incorrect!');location='login.php';</script>"; 28 } 29 } 30 else 31 { 32 echo "<script language='javascript'>alert('Invaild username!');location='login.php';</script>"; 33 } 34 ?>
checkA.php:检查是否已经登录,就是说检查session变量里面的username是否为空,如果是的话跳转到登录页面提示登录,不是则放行。


1 <?php 2 3 session_start(); 4 if($_SESSION['username']=="") 5 { 6 echo "<script language='javascript'>alert('You have not logined yet!!!');location='login.php';</script>"; 7 } 8 9 ?>
logout.php:登出,只需要把username重新赋成空即可。


1 <?php 2 session_start(); 3 $_SESSION['username'] = ""; 4 session_destroy(); 5 echo "<script language='javascript'>alert('Logout success!');location='http://www.cnblogs.com/index.php';</script>" 6 ?>
其他:在需要验证登录的界面include checkA.php 即可,不过记得添加登出链接。
然后对于某些页面可以验证是否登录,如果登录则显示更多信息。
最后附上主页截图,域名还没申请到,估计这个暑假可以把该站放出。