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

yipeiwu_com7年前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)

相关文章

PHP中根据IP地址判断城市实现城市切换或跳转代码

获取IP地址复制代码 代码如下:<?phpfunction GetIP() {    if ($_SERVER["HTTP_X_FORWARDED_F...

php使用json_decode后数字对象转换成了科学计数法的解决方法

本文实例讲述了php使用json_decode后数字对象转换成了科学计数法的解决方法。分享给大家供大家参考,具体如下: 问题: 今天在搞网页游戏在facebook积分上的对接,faceb...

php读取目录所有文件信息dir示例

复制代码 代码如下: <?php set_time_limit(0); function tree($directory) { $mydir=dir($directory); ec...

PHP屏蔽过滤指定关键字的方法

本文实例讲述了PHP屏蔽过滤指定关键字的方法。分享给大家供大家参考。具体分析如下: 实现思路: 一、把关键字专门写在一个文本文件里,每行一个,数量不限,有多少写多少。 二、PHP读取关键...

php使用pdo连接sqlite3的配置示例

本文实例讲述了php使用pdo连接sqlite3的配置方法。分享给大家供大家参考,具体如下: 刚刚开始使用php+sqlite 的时候,一直以为自己使用的是sqlite3 ,其实不是,p...