我做了一些研究,但找不到解决我问题的明确答案。这就是我所拥有的:
<?php
session_start();
$gen_num = file_get_contents($_SESSION['filename']);
$inp_num = $_POST['form-input'];
if($gen_num === $inp_num){
echo "Yes! The numbers match!";
} else {
echo "No, the numbers do not match…";
}
?>
“文件名”中包含一串数字,而“表单输入”则来自先前提交的HTML表单。
当字符串相同时,为什么IF测试失败?
编辑 简单的解决方法是修剪$ gen_num。另外,我说“文件名”是一个.txt文件时不够明确,它包含一串数字以及一些看不见的特殊字符。
谢谢您的帮助!
答案 0 :(得分:0)
如果$_SESSION['filename']
就像一串数字,那么文件名就没有结尾。
您应该输入以下行:
$gen_num = file_get_contents($_SESSION['filename'] . ".txt");
或者file_get_contents将找不到仅包含数字作为名称的文件并返回false。
这就是为什么数字不匹配的原因。
答案 1 :(得分:0)
如果两个值都是整数,则将它们设为floor()并使用==
捕获0个异常