URL、表单数据、IP等处理类
<?php
class ev
{
public $cookie;
public $post;
public $get;
public $file;
public $url;
public $G;
private $e;
public function __construct()
{if (ini_get('magic_quotes_gpc')) { //判断php.ini是否有magic_quotes_gpc过滤(转义)函数
$get = $this->stripSlashes($_REQUEST);
$post = $this->stripSlashes($_POST);
$this->cookie = $this->stripSlashes($_COOKIE);
} else {
$get = $_REQUEST;
$post = $_POST;
$this->cookie = $_COOKIE;
}
$this->file = $_FILES;
$this->get = $this->initData($get);
$this->post = $this->initData($post);
$this->url = $this->parseUrl();
$this->cookie = $this->initData($this->cookie);
}
//解析url
public function parseUrl()
{
if(isset($_REQUEST['route']))
{
return explode('-',$_REQUEST['route']); //解析路由
}
elseif(isset($_SERVER['QUERY_STRING']))
{
$tmp = explode();
$tp = explode(],);
]);
}
else return false;
}
//返回$_REQUEST数组内的值
public function get($par)
{
if(isset($this->get[$par]))return $this->get[$par];
else return false;
}
//返回$_POST数组内的值
public function post($par)
{
if(isset($this->post[$par]))return $this->post[$par];
else return false;
}
//返回URL数组中的值
public function url($par)
{
$par = intval($par);
if(isset($this->url[$par]))return $this->url[$par];
else return false;
}
//设置COOKIE
)
{
if($time)$time = TIME + $time;
;
if(CDO)setCookie(CH.$name,$value,$time,CP,CDO);
else setCookie(CH.$name,$value,$time,CP);
}
//获取cookie
)
{
if(isset($this->cookie[CH.$par]))return $this->cookie[CH.$par];
elseif(isset($this->cookie[$par]) && $nohead)return $this->cookie[$par];
else return false;
}
//获取$_FILE
public function getFile($par)
{
if(isset($this->file[$par]))return $this->file[$par];
else return false;
}
//初始化数据
public function initData($data)
{
if(is_array($data))
{
foreach($data as $key => $value)
{
if($this->strings->isAllowKey($key) === false)
{
unset($data[$key]);
}
else
$data[$key] = $this->initData($value);
}
return $data;
}
else
{
if(is_numeric($data))
{
] === )return $this->addSlashes(htmlspecialchars(str_replace("'","'",$data)));
)return $this->addSlashes(htmlspecialchars(str_replace("'","'",$data)));
if(strpos($data,'.'))return floatval($data);
else return intval($data);
}
if(is_string($data))return $this->addSlashes(htmlspecialchars(str_replace("'","'",$data)));
if(is_bool($data))return (bool)$data;
return false;
}
}
//去除转义字符
public function stripSlashes($data)
{
if (is_array($data)) {
foreach ($data as $key => $value) {
$data[$key] = $this->stripSlashes($value);
}
} else {
$data = stripSlashes(trim($data));
}
return $data;
}
//添加转义字符
public function addSlashes($data)
{
if (is_array($data)) {
foreach ($data as $key => $value) {
$data[$key] = $this->addSlashes($value);
}
} else {
$data = addSlashes(trim($data));
}
return $data;
}
//获取客户端IP
public function getClientIp()
{
if(!isset($this->e['ip']))
{
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
$this->e['ip'] = $ip;
}
return $this->e['ip'];
}
//根据二级域名获取信息
public function getSecondDomain()
{
$domain = $_SERVER['HTTP_HOST'];
$domain = str_replace(array('com.cn','net.cn','gov.cn','org.cn'),'com',$domain);
$tmp = explode('.',$domain);
)return false;
elseif(is_numeric($tmp[]))return false;
];
}
}
?>
URL、表单数据、IP等处理类的更多相关文章
- 【ASP.NET Web API教程】5.2 发送HTML表单数据:URL编码的表单数据
原文:[ASP.NET Web API教程]5.2 发送HTML表单数据:URL编码的表单数据 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面的内 ...
- 利用BeanUtils工具类封装表单数据
一.BeanUtils工具类的使用 1.首先导入BeanUtils工具类的jar包 commons-beanutils-1.8.0.jar commons-logging-1.1.1.jar 2.se ...
- hyper发送表单数据
前言 某个美丽的下午,运维把服务器上的nginx升级了,http协议也变成了http2.0,我本地的requests再也连接不到服务器,然后就找到了额hyper 但是hyper的文档写的很简单,而且相 ...
- flask 处理表单数据
处理表单数据 表单数据的处理涉及很多内容,从获取数据到保存数据大致有以下步骤: 1. 解析请求,获取表单数据 2. 对数据进行必要的转换,比如讲勾选框的值转换成python的布尔值 3. 验证数 ...
- jQuery序列化表单数据 serialize()、serializeArray()及使用
1.serialize() 方法: serialize() 方法通过序列化表单值,创建 URL 编码文本字符串. 您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素 ...
- SpringMVC封装表单数据
1.domain类 package com.xiaostudy.domain; public class User { private int id; private String username; ...
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第四篇:传递表单数据
摘要 本文将完成我们“MVC公告发布系统”的公告发布功能,以此展示在ASP.NET MVC中如何传递处理表单的数据. 前言 通过前几篇文章,我们已经能比较自如的使用ASP.NET ...
- day 84 Xadmin组件之构建表单数据
一 .先设置一些相关配置 1. 创建数据库模型. 在app01 下创建 from django.db import models # Create your models here. class Au ...
- Servlet的5种方式实现表单提交(注册小功能),后台获取表单数据
用servlet实现一个注册的小功能 ,后台获取数据. 注册页面: 注册页面代码 : <!DOCTYPE html> <html> <head> <meta ...
- Struct2提交表单数据到Acion
Struct2提交表单数据到Action,Action取表单的数据,传递变量.对象 HTML.jsp <form action="reg.do" method="p ...
随机推荐
- iOS-开发技巧-页面布局
#pragma mark - Life Cycle//1.初始化//2.view did load//3.view will appear…#pragma mark - System Delegate ...
- jquery选中下拉列表的某个值
$('#villageToiletAnn').val('xxx'); id是select的ID,不是option的ID
- Django--models基础
需求 了解models字段和参数 速查 models.py 1 2 3 class UserInfo(models.Model): ctime = models.DateTimeField( ...
- 算法解读:s变量和数组
算法是解决问题并获得结果的过程.在这个处理过程中,问题以数据的形式输入,结果同样以数据的形式输出,在算法的处理过程中,也需要各种临时的数据. 数据是什么? 数据是多种不同信息的表现. 以料理中的食谱为 ...
- JS 中对象的简单创建和继承
对象的简单创建 1.通过对象直接量创建 比如 var obj = {}; 2.通过new 创建 比如 var obj = new Object(); // 相当于var obj = {}; var a ...
- Ajax学习整理
什么是ajax?W3School中给ajax的定义是: 1.AJAX = 异步 JavaScript 和 XML. 2.AJAX 是一种用于创建快速动态网页的技术. 3.通过在后台与服务器进行少量数据 ...
- java内部类的使用
内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类 如同一个人是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液.跳动) 显然, ...
- ajax onblur 用法
value为当前框中的值 <input name="num"type="text" onblur="changeorder(id,this. ...
- Python参数组合
参数定义的顺序必须是:①必选参数.②默认参数.③可选参数.④命名关键字参数.⑤关键字参数 #a,b为必选参数:c为默认参数:args为可变参数:kw为关键字参数 def f1(a,b,c=0,*arg ...
- mysql乱码以及Data too long for column全解(最完整实用版)
今天系统升级,开发.测试说本地环境.测试环境都没有问题,都用ssh client升的,演示环境报错了Data too long for column. 仔细检查了下,表字符集都是utf-8,目测长度肯 ...