PHP关于检测用户是否登陆,以及设置拦截器(简单实现)
2012-06-30 10:27
441 查看
昨天没有午休,搞了一下午居然没搞明白,今天半个小时搞定了,看来还是早上效率高,看了午休还是必须的
进入正题,有注册系统的网站当然必须有安全机制 ,概述如下
1.登陆 需要检测用户的合法性
2.在主页要检测是否登陆过,其实就是检测上面的username是否存在(当然也可以是密码+用户名),这个文件只要使用include 放到想要检测登陆的页面就可以了
使用:<?php session_start();include "check_login.php";?>
3.如果要执行退出 那么先执行
删除SESSION ,跳转到login.html
这个只是简单的实现 ,估计真正的应用网站应该不会这么简单 ,这样的安全机制太容易攻破,好一点的方法是在检查登陆那里 实现查询数据库的操作,当然这样就要耗费cpu资源了
进入正题,有注册系统的网站当然必须有安全机制 ,概述如下
1.登陆 需要检测用户的合法性
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <?php session_start(); include("conn/conn.php");?> <?php function clearSession(){//清楚SESSION方法 session_start(); //启动会话 session_unset(); //删除会话 session_destroy(); //结束会话 } $username=$_POST['username']; $password=$_POST['password']; $auth='common'; $res=mysql_query("select password,auth from userinfo where username='$username'"); if($row=mysql_fetch_array($res)){ $base_password=$row[0]; $base_auth=$row[1]; if($base_password==$password){ echo "登陆成功!"; $url = "main.php"; //可以写成一句,但是这样比较符号html的 结构 echo "<script language='javascript'type='text/javascript'>"; echo "window.location.href='$url'"; echo "</script>"; $_SESSION['username'] = $username;//注册username的SESSION }else{ clearSession();//如果有SESSION也要清除 echo "密码错误!"; echo "<script language='javascript'>alert(\"密码错误!!\");</script>"; $url = "login.html"; echo "<script language='javascript'type='text/javascript'>"; echo "window.location.href='$url'"; echo "</script>"; } }else{ clearSession(); echo "用户名不存在!"; echo "<script language='javascript'>alert(\"用户名不存在!!\");</script>"; $url = "login.html"; echo "<script language='javascript'type='text/javascript'>"; echo "window.location.href='$url'"; echo "</script>"; } ?>
2.在主页要检测是否登陆过,其实就是检测上面的username是否存在(当然也可以是密码+用户名),这个文件只要使用include 放到想要检测登陆的页面就可以了
<?php session_start(); if($_SESSION[username]==""){ echo "<script>alert('请登录!');window.location.href='login.html';</script>"; } ?>
使用:<?php session_start();include "check_login.php";?>
3.如果要执行退出 那么先执行
<?php session_start(); //启动会话 session_unset(); //删除会话 session_destroy(); //结束会话 header("location:login.html"); ?>
删除SESSION ,跳转到login.html
这个只是简单的实现 ,估计真正的应用网站应该不会这么简单 ,这样的安全机制太容易攻破,好一点的方法是在检查登陆那里 实现查询数据库的操作,当然这样就要耗费cpu资源了
相关文章推荐
- PHP关于检测用户是否登陆,以及设置拦截器(简单实现)
- 简单的Struts2的Interceptors(拦截器)机制介绍以及利用拦截器实现用户登陆时执行耗时操作并自动跳转的实例
- JDBC编程作业--登陆界面的实现(检测数据库中是否有用户名,并且可以注册用户)!
- 权限设置页面之间PK用户体验(功能是否合理?操作是否方便?编程实现是否简单?)
- 权限设置页面之间PK用户体验(功能是否合理?操作是否方便?编程实现是否简单?)
- 利用邮件对象实现发送QQ日志以及检测用户是否开通SMTP功能
- php实现用户登陆简单实例
- structs2中的拦截器检测用户是否登陆
- php面向对象实现简单的用户注册登陆
- 拦截器实现对用户是否登录及登陆超时的验证
- php实现简单的用户注册,登录,修改个人信息接口
- php如何设置cookie实现自动登陆?
- PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆
- PHP简单实现模拟登陆功能示例
- 防止未登录用户操作—struts2拦截器简单实现
- 一组检测用户名以及密码(提前设置)是否正确的jsp网页
- 防止未登录用户操作—struts2拦截器简单实现
- php简单实现屏蔽指定ip段用户的访问
- PHP实现用session来实现记录用户登陆信息
- 在ASP.NET中怎么用SESSION判断用户是否登录? 以及Session登陆后丢失的解决办法