sanitize_vars 对页面传递过来的参数进行验证和清理

<?php
/**
 * @param $vars
 * @param $signatures
 * @param null $redir_url
 */
function sanitize_vars(&$vars, $signatures, $redir_url = null){
    $tmp = array();
    foreach($signatures as $name => $sig){
        if(!isset($vars[$name]) && isset($sig['required']) && $sig['required']){
            if($redir_url){
                header("Location: $redir_url");
            } else {
                echo 'Parameter &name not present and no redirect URL';
            }
            exit();
        }

        $tmp[$name] = $vars[$name];
        if(isset($sig['type'])){
            settype($tmp[$name], $sig['type']);
        }

        if(isset($sig['function'])){
            $tmp[$name] = $sig['function']($tmp[$name]);
        }
    }
    $vars = $tmp;
}

$sigs = array(
    'prod_id' => array('required' => true, 'type' => 'int'),
    'desc' => array('required' => true, 'type' => 'string', 'function' => 'addslashes')
);

var_dump($_GET);
//sanitize_vars($_GET,$sigs,"http://{$_SERVER['SERVER_NAME']}/error.php?cause=vars");
sanitize_vars($_GET,$sigs);
var_dump($_GET);

 

测试:http://localhost/?prod_id=ab35&desc=12%22273

array (size=2)
  'prod_id' => string 'ab35' (length=4)
  'desc' => string '12"273' (length=6)
 (size=2)
  'prod_id' => string 'ab35' (length=4)
  'desc' => string '12"273' (length=6)
array (size=2)
  'prod_id' => int 0
  'desc' => string '12\"273' (length=7)
 (size=2)
  'prod_id' => int 0
  'desc' => string '12\"273' (length=7)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值