热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php如何向JavaWeb一样定义过滤器

:本篇文章主要介绍了php如何向JavaWeb一样定义过滤器,对于PHP教程有兴趣的同学可以参考一下。
php统一验证用户登陆,防止用户输入链接在未登录状态进入 网站某些界面

我们知道 php中的过滤器仅仅是对数据输入进行过滤,并没有像Java Servlet技术一样,根据配置拦截 一定url的过滤器,这样在 请求来之前,和发出之中,可以自由透明的对请求和输出进行处理,同时可以转发,功能相当强大,大部分认识Java过滤器都是通过对字符编码过滤的例子认识了过滤器,然后在实际项目中大量使用过滤器,功能非常强大,同时也使得Java的MVC框架利用过滤器进行转发,定义各种处理方式,但是php中貌似没有,我是用的是ThinkPhp框架,但是这个框架也没有提供,但是我想这个问题本身并不难 ,于是我就想有没有一种设置,或者在某些地方 任何请求都经过它, 我想在thinkphp中框架中找,但是苦于时间,还有其他项目的继续,没有时间。于是在网上想到一种解决方案,

在PHP的配置文件 php.ini文件中有一个设置 auto_prepend_file=“某个文件” 这个设置的作用是在每一个php文件前都加入这个文件,一般是php文件,我加的是 filter.php ,把这个文件放到 php.ini的同级目录下 filter.php的内容为

	$url = $_SERVER["PHP_SELF"];
        $url = substr($url,strlen($url)-8,2);
	//echo $url;
	if(($_SERVER["PHP_SELF"] == '/miaomi/index.php/Index/login')||($_SERVER["PHP_SELF"] == '/miaomi/index.php')||$url=='In')
	{
		
	}
	else{
		SESSION_START();
		if((!isset($_SESSION['username'])))
		{
			
			echo "";
			
		}
	}

这里有我的业务逻辑,可以看到我对用户的访问路径,还有session都进行了判断, 判断目的在于 防止用户在登录请求时被拦截,这样造成死循环,也防止一些非登录也可访问的页面不被拦截(用户可以定义目录,或者定义一个数组保存这些界面,进行判断) 向页面输出脚本 这样可以重定向用户界面 当然也可以 通过alert 弹出提示

从这里我们可以看到,脚本攻击的危险,如果这是不法分子的 有可能在你的服务器上更改你的配置文件,最简单的加入一段脚本,将网页重定向到 huangwang,那就呵呵了,,这是后话,我是新手!

以上就介绍了php如何向JavaWeb一样定义过滤器,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

推荐阅读
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • Django与Python及其他Web框架的对比
    本文详细介绍了Django与其他Python Web框架(如Flask和Tornado)的区别,并探讨了Django的基本使用方法及与其他语言(如PHP)的比较。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • HTML前端开发:UINavigationController与页面间数据传递详解
    本文详细介绍了如何在HTML前端开发中利用UINavigationController进行页面管理和数据传递,适合初学者和有一定基础的开发者学习。 ... [详细]
  • ABP框架是ASP.NET Boilerplate的简称,它不仅是一个开源且文档丰富的应用程序框架,还提供了一套基于领域驱动设计(DDD)的最佳实践架构模型。本文将详细介绍ABP框架的特点、项目结构及其在Web API优先架构中的应用。 ... [详细]
  • 本文讲述了一位80后的普通男性程序员,尽管没有高学历,但通过不断的努力和学习,在IT行业中逐渐找到了自己的位置。从最初的仓库管理员到现在的多技能开发者,他的职业生涯充满了挑战与机遇。 ... [详细]
  • Java作为全球最流行的编程语言之一,应用广泛。本文将详细介绍Java开发的相关岗位及其具体职责,帮助读者更好地了解这一领域的职业发展路径。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 本文介绍了多种开源数据库及其核心数据结构和算法,包括MySQL的B+树、MVCC和WAL,MongoDB的tokuDB和cola,boltDB的追加仅树和mmap,levelDB的LSM树,以及内存缓存中的一致性哈希。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 在什么情况下MySQL的可重复读隔离级别会导致幻读现象? ... [详细]
  • 系统数据实体验证异常:多个实体验证失败的错误处理与分析
    在使用MVC和EF框架进行数据保存时,遇到了 `System.Data.Entity.Validation.DbEntityValidationException` 错误,表明存在一个或多个实体验证失败的情况。本文详细分析了该错误的成因,并提出了有效的处理方法,包括检查实体属性的约束条件、调试日志的使用以及优化数据验证逻辑,以确保数据的一致性和完整性。 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
author-avatar
baby小明君
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有