【发布时间】:2016-02-04 05:37:59
【问题描述】:
该函数从文件 data.db (utf-8) 中读取两个字符串。该文件包含字符串:“123”和“123”。我通过 ECHO 检查了它,它正确显示了内容。因此,我确定问题不在文件中。
当我尝试将值与文件匹配时,变量 $access 永远不会改变。
//got data from $_POST....
function au_check($login,$psw){
$f = file('data.db');
$l = $f[0];
$p = $f[1];
$access = 'fail';
if ($login==$l && $psw==$p){
$access='CHANGED';
}
return $access;
}
echo (au_check($_POST['login'],$_POST['pass'])); //returns FAIL :((((
但是!如果我在代码中直接更改我的值,它可以工作...
//从$_POST获取数据....
function au_check($login,$psw){
$f = file('data.db');
$l = '123';
$p = '123';
$access = 'fail';
if ($login==$l && $psw==$p){
$access='CHANGED';
}
return $access;
}
echo (au_check($_POST['login'],$_POST['pass'])); //returns CHANGED.
?>
请帮忙!如何解决,出了什么问题?太奇怪了....
【问题讨论】:
-
print_r($f);的输出是什么?您可能需要trim()解决问题 -
$login/$psw和$l/$pboth 可能没有相同的数据类型值,因此您可能需要在进行比较之前进行类型转换 -
print_r ($f) 数组 ( [0] => 123 [1] => 123 )
-
对不起
var_dump($f);? -
@Haridarshan
==== 相同为真,=== 值为真。 Source。 (你不需要投射)
标签: php