第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

[PHP]消毒變數(shù)的利器,filter_var和filter_var_array

標(biāo)簽:
PHP

只要有使用者输入的地方,都不能大意,因为一不小心就有可能被植入恶意代码,所以消毒就变得非常重要,不过自己处理难免百密一疏,所幸PHP从5.2开始提供内置方法

就是filter_var和filter_var_array,前者处理单一变数,后者当然是处理数组啰

搭配不同的参数,就可以消毒不同的型态,数字甚至可以自定义范围,使用上非常的灵活,不过我在使用上,有一个固定的模式,就是接收表单后,要检查各个值是否符合规定,以及是否有缺值,因为实在是很懒得针对每个去写检查,想要一坨一次检查

想当然就是用filter_var_array直接检查POST或GET了,但是发现每个值都要另外处理参数,实在是太麻烦了,经过评价发现我大部分都是文字比较多,所以就写了一个方法,让预设处理是FILTER_SANITIZE_STRING,若是数字或其他的再特别指定

至于要怎么知道有违法的值,有个参数很好用,就是FILTER_NULL_ON_FAILURE,失败自动回传null,我再检查结果数组内有任何是null,如果有就整陀不能用啦

/**

*消毒变数,未指定的key依照预设的方式消毒

* @param array $data来源数组

* @param mixed $args指定各数值的消毒方式

* @param filter_flag $default_filter针对未指定的值采用的消毒方式

*

* @return mixed已消毒的array,若某个值过滤失败则回传false

*/

function sanitize_var($data,$args=array(),$default_filter = FILTER_SANITIZE_STRING){

foreach($data as $key=>$value){

if(!array_key_exists($key,$args)){

$args[$key] = array(“filter”=>$default_filter,“flags”=>FILTER_NULL_ON_FAILURE);

}else{

if(is_array($args[$key])){

//若原本有指定参数,则加上FILTER_NULL_ON_FAILURE,若没有则指定FILTER_NULL_ON_FAILURE

if(array_key_exists(“flags”,$args[$key])){

$args[$key][“flags”] |= FILTER_NULL_ON_FAILURE;

}else{

$args[$key][“flags”] = FILTER_NULL_ON_FAILURE;

}

}else{

$tmp_filter = $args[$key];

$args[$key] = array(“filter”=>$tmp_filter,“flags”=>FILTER_NULL_ON_FAILURE);

}

}

}

$result = filter_var_array($data,$args);

foreach($result as $key=>$value){

if(is_null($value)){

return FALSE;

}

}

return $result;

}

//account和password两个是必要值,若有缺则会返回false

$data = sanitize_var($_POST,array('account'=>FILTER_SANITIZE_STRING,'password'=>FILTER_SANITIZE_STRING));

if($data){

//do something

}else{

//value is invalid

}

//不指定必要值,预设会将包含的变数预设以FILTER_SANITIZE_STRING进行消毒

$data = sanitize_var($_GET);

//直接使用$data内的值

感觉是不是方便了不少,一次解决缺值检查跟类型消毒,如果有更好的方法或改良,欢迎提供出来参考参考,大家互相漏气求进步~

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報(bào)

0/150
提交
取消