php 对输入信息的进行安全过滤的函数代码

代码如下:

// define constannts for input reading
define('INPUT_GET', 0x0101);
define('INPUT_POST', 0x0102);
define('INPUT_GPC', 0x0103);

/**
* Read input value and convert it for internal use
* Performs stripslashes() and charset conversion if necessary
*
* @param string Field name to read
* @param int Source to get value from (GPC)
* @param boolean Allow HTML tags in field value
* @param string Charset to convert into
* @return string Field value or NULL if not available
*/
function get_input_value($fname, $source, $allow_html=FALSE, $charset=NULL) {
$value = NULL;

if ($source == INPUT_GET && isset($_GET[$fname]))
$value = $_GET[$fname];
else if ($source == INPUT_POST && isset($_POST[$fname]))
$value = $_POST[$fname];
else if ($source == INPUT_GPC) {
if (isset($_POST[$fname]))
$value = $_POST[$fname];
else if (isset($_GET[$fname]))
$value = $_GET[$fname];
else if (isset($_COOKIE[$fname]))
$value = $_COOKIE[$fname];
}

if (empty($value))
return $value;

// strip single quotes if magic_quotes_sybase is enabled
if (ini_get('magic_quotes_sybase'))
$value = str_replace("''", "'", $value);
// strip slashes if magic_quotes enabled
else if (get_magic_quotes_gpc() || get_magic_quotes_runtime())
$value = stripslashes($value);

// remove HTML tags if not allowed
if (!$allow_html)
$value = strip_tags($value);

// convert to internal charset
return $value;
}

用法:get_input_value('_uid', INPUT_GET)

(0)

相关推荐

  • php过滤输入操作之htmlentities与htmlspecialchars用法分析

    本文实例讲述了php过滤输入操作htmlentities与htmlspecialchars用法.分享给大家供大家参考,具体如下: 过滤输入 (即来自所列数据源中的任何数据)是指,转义或删除不安全的字符.在数据到达应用的存储层之前,一定要过滤输入数据.这是第一道防线.假如网站的评论表单接收html,默认情况下访客可以毫无阻拦地在评论中加入恶意的<script>标签,如下标示: <p> 我的测试 </p> <script>alert(123)</scrip

  • php 去除html标记--strip_tags与htmlspecialchars的区别详解

    strip_tags 去掉 HTML 及 PHP 的标记. 语法: string strip_tags(string str); 传回值: 字串 函式种类: 资料处理 内容说明 本函式可去掉字串中包含的任何 HTML 及 PHP 的标记字串.若是字串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会传回错误.而本函式和 fgetss() 有着相同的功能. htmlspecialchars 将特殊字元转成 HTML 格式. 语法: string htmlspecialchars(

  • php中filter函数验证、过滤用户输入的数据

    PHP Filter 简介 PHP 过滤器用于对来自非安全来源的数据(比如用户输入)进行验证和过滤. 复制代码 代码如下: //除去html标签,或除去编码特殊字符 var_dump(filter_var("<html>中文ABC@#</html><script>abc</script><b>BBB</b><span>",FILTER_SANITIZE_STRING)); //url_encoded编码

  • php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总

    从旧版升级到php5.4,恐怕最麻烦的就是htmlspecialchars这个问题了!当然,htmlentities也会受影响,不过,对于中文站来说一般用htmlspecialchars比较常见,htmlentities非常少用到. 可能老外认为网页普遍应该是utf-8编码的,于是苦了那些用GB2312,GBK编码的中文站......! 具体表现: 复制代码 代码如下: $str = "9enjoy.com的php版本是5.2.10"; echo htmlspecialchars($s

  • php htmlentities和htmlspecialchars 的区别

    The translations performed are: 复制代码 代码如下: '&' (ampersand) becomes '&' '"' (double quote) becomes '"' when ENT_NOQUOTES is not set. ''' (single quote) becomes ''' only when ENT_QUOTES is set. '<' (less than) becomes '<' '>' (gre

  • php HtmlReplace输入过滤安全函数

    复制代码 代码如下: // $rptype = 0 表示仅替换 html标记 // $rptype = 1 表示替换 html标记同时去除连续空白字符 // $rptype = 2 表示替换 html标记同时去除所有空白字符 // $rptype = -1 表示仅替换 html危险的标记 function HtmlReplace($str,$rptype=0) { $str = stripslashes($str); if($rptype==0) { $str = htmlspecialchar

  • php htmlspecialchars()与shtmlspecialchars()函数的深入分析

    定义和用法htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体. 预定义的字符是:•& (和号) 成为 &•" (双引号) 成为 "•' (单引号) 成为 '•< (小于) 成为 <•> (大于) 成为 >语法htmlspecialchars(string,quotestyle,character-set) 参数 描述 string 必需.规定要转换的字符串. quotestyle 可选.规定如何编码单引号和双引号.

  • PHP开发不能违背的安全规则 过滤用户输入

    作为最基本的防范你需要注意你的外部提交,做好第一面安全机制处理防火墙. 规则 1:绝不要信任外部数据或输入 关于Web应用程序安全性,必须认识到的第一件事是不应该信任外部数据.外部数据(outside data) 包括不是由程序员在PHP代码中直接输入的任何数据.在采取措施确保安全之前,来自任何其他来源(比如 GET 变量.表单 POST.数据库.配置文件.会话变量或 cookie)的任何数据都是不可信任的. 例如,下面的数据元素可以被认为是安全的,因为它们是在PHP中设置的. 复制代码 代码如

  • php htmlentities()函数的定义和用法

    php htmlentities() 函数把字符转换为 HTML 实体,本文章向码农介绍php htmlentities() 函数基本使用方法和实例介绍,需要的码农可以参考一下. 定义和用法 htmlentities() 函数把字符转换为 HTML 实体. 提示:要把 HTML 实体转换回字符,请使用 html_entity_decode() 函数. 提示:请使用 get_html_translation_table() 函数来返回 htmlentities() 使用的翻译表. 语法 htmle

  • php 字符过滤类,用于过滤各类用户输入的数据

    详细代码如下: 复制代码 代码如下: <?php abstract class Filter { //filter parent class private $blackstr = array(); private $whitestr = array(); function filtit($str) { //do something } } class LoginFilter extends Filter { //for user login filte username(过滤注册的用户名) f

  • php htmlspecialchars加强版

    复制代码 代码如下: //取消HTML代码 function shtmlspecialchars($string) { if(is_array($string)) { foreach($string as $key => $val) { $string[$key] = shtmlspecialchars($val); } } else { $string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5})

  • PHP关于htmlspecialchars、strip_tags、addslashes的解释

    PHP的htmlspecialchars.strip_tags.addslashes是网页程序开发中常见的函数,今天就来详细讲述这些函数的用法: 1.函数strip_tags:去掉 HTML 及 PHP 的标记 注意:本函数可去掉字串中包含的任何 HTML 及 PHP 的标记字串.若是字串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会传回错误.而本函数和 fgetss() 有着相同的功能.fgetss是从文件中读取文件,并去掉html和php标记. 2.函数htmlspec

随机推荐