黑帽联盟

标题: PHP登陆Session验证 [打印本页]

作者: yun    时间: 2016-12-23 05:40
标题: PHP登陆Session验证
首先,在MySQL数据库中创建管理员账号表
  1. create table users
  2. (
  3. username char(8) not null,
  4. passcode char(8) not null,
  5. userflag int,
  6. primary key(username)
  7. );
复制代码
接着对表进行初始化,输入数据。
  1. insert into users values('admin','admin123',1);
复制代码
用户登陆页面:
  1. <html>
  2. <head>
  3.   <title>Login_fangbei</title>
  4. </head>
  5. <body>
  6.   <form name="fangbei" method="post" action="check_session_login.php">
  7.    <div style="width:353">
  8.     <dl>
  9.      <dt></dt>
  10.      <dd>
  11.       <div align="left">
  12.        Username:
  13.        <input type="text" name="username" />
  14.       </div>
  15.      </dd>
  16.      <dd>
  17.       <div align="left">
  18.        Psssword:
  19.        <input type="password" name="passcode" />
  20.       </div>
  21.      </dd>
  22.      <dd>
  23.       <p align="center"> <input type="submit" name="Submit" value="Submit" /> <input type="reset" name="Reset" value="Reset" /> </p>
  24.      </dd>
  25.     </dl>
  26.    </div>
  27.   </form>  
  28. </body>
  29. </html>
复制代码
这个页面登陆之后,会从表单中转向check_session_login.php页面。
代码如下:
  1. <?php
  2. @mysql_connect("localhost","root",'root')
  3. or die("数据库连接失败");
  4. @mysql_select_db("mydb")
  5. or die("选择数据库失败");
  6. //获取输入的信息
  7. $username = $_POST['username'];
  8. $passcode = $_POST['passcode'];
  9. //获取session的值
  10. $query = @mysql_query("select username,userflag from users where username = '$username' and passcode = '$passcode'")
  11. or die("SQL语句执行失败");
  12. //判断用户以及密码
  13. if($row = mysql_fetch_array($query))
  14. {
  15.     session_start();
  16.     //判断权限
  17.     if($row['userflag'] == 1 or $row['userflag'] == 0){
  18.         $_SESSION['username'] = $row['username'];
  19.         $_SESSION['userflag'] = $row['userflag'];
  20.         echo "<a href='welcome_session_login.php'>欢迎访问bbs.cnblackhat.com</a>";
  21.     }else{
  22.         echo "userflag不正确";
  23.     }

  24. }else{
  25.     echo "username或者usercode";
  26. }
  27. ?>
复制代码
验证通过之后,达到欢迎页面welcome_session_login.php。
代码如下:
  1. <?php
  2. session_start();
  3. if(isset($_SESSION['username']))
  4. {
  5.     if($_SESSION['userflag'] == 1)
  6.         echo "欢迎管理员".$_SESSION['username']."登陆";
  7.     if($_SESSION['userflag'] == 0)
  8.         echo "欢迎用户".$_SESSION['username']."登陆";
  9. }
  10. else
  11. {
  12.     echo "您没有权限访问此页面";
  13. }
  14. ?>
复制代码
最后还有个销毁session页面destroy_session_login.php。
代码如下:
  1. <?php
  2. unset($_SESSION['username']);
  3. unset($_SESSION['passcode']);
  4. unset($_SESSION['userflag']);
  5. echo "注销成功";
  6. ?>
复制代码





欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5