设为首页 收藏本站
查看: 1119|回复: 0

[经验分享] PHP关于检测用户是否登陆,以及设置拦截器(简单实现)

[复制链接]

尚未签到

发表于 2017-4-11 10:09:47 | 显示全部楼层 |阅读模式
昨天没有午休,搞了一下午居然没搞明白,今天半个小时搞定了,看来还是早上效率高,看了午休还是必须的
进入正题,有注册系统的网站当然必须有安全机制 ,概述如下
DSC0000.jpg


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资源了

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-363277-1-1.html 上篇帖子: PHP中静态方法(static)与非静态方法的使用及区别 下篇帖子: #舍得Share#php开发笔记-通过IP区分不同国家的用户
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表