对于从 POST 接收的数据和另一个变量(它将是 SESSION 数组的一部分,但在开发中是它自己的数组),我有一个简单的过滤函数。POST 数据完全按照预期由函数处理,而另一个变量$sess['iid']
总是失败。为什么?
我可以解决这个问题,但我不想明白为什么会这样。
过滤功能:
function filterNumber($fin) {
if( ctype_digit( $fin ) ) {
$fout = $fin;
} else {
$fout = 0;
}
return $fout;
}
我对变量命名很严格,所以 POST 数组被传输到$dirty[]
,然后$clean[]
(用于进入数据库)通过对$dirty[]
. 完全相同的序列适用于$sess['iid']
。
每个阶段的例子:
$dirty['iid'] = $sess['iid'];
$dirty['liverpool'] = $_POST['liverpool'];
$clean['iid'] = filterNumber($dirty['iid']);
$clean['liverpool'] = filterNumber($dirty['liverpool']);
第一步 -$sess['iid']
到$dirty['iid]
- 工作,就像 POST 变量一样。
但是第二个,$dirty['iid']
到$clean['iid']
via filterNumber()
,结果为 0,不管我输入了什么$sess['iid']
。
如果我消除该$dirty['iid']
步骤,也会发生这种情况。