print "post: {$_POST['var']} session: {$_SESSION['var']}\n";
假设这打印2个相等的输出。
然后
if($_POST['var'] == $_SESSION['var']){
...
}
从不评估为真。我该怎么做才能解决它?
答案 0 :(得分:2)
尝试以下方法:
if (trim($_POST['var']) == trim($_SESSION['var'])) {
// ...
}
您还可以使用$_SESSION['var']
检查$_POST['var']
和var_dump
的内容,看看它们是否匹配:
var_dump($_POST['var']);
var_dump($_SESSION['var']);
答案 1 :(得分:1)
我不认为它可能是数据类型问题(除非它们可能是浮点数)但是如果你想检查它们是否是同一类型,那么使用===。我的猜测是,其中一个中有一个胭脂空间,当你打印出来时你无法检测到。你能举出打印出来的例子吗?
答案 2 :(得分:0)
<?php
$_SESSION['var'] = "Variable";
$_POST['var'] = "Variable";
if($_POST['var'] == $_SESSION['var'])
print 1;
else
print 2;
?>
结果是1.您比较的变量值是多少?
答案 3 :(得分:0)
我认为这不是数据类型问题,但如果你想在php中比较数据类型,你可以执行以下操作:
if($_POST['var'] === $_SESSION['var']){
...
}
或者,您可以通过执行以下操作来转换数据类型:(int)(array)(object)
$a = (int)$_POST['var'];
$b = (int)$_SESSION['var'];
if($a === $b) {
...
}