gpt4 book ai didi

php - php中$_POST如何运行

转载 作者:行者123 更新时间:2023-12-03 02:00:27 25 4
gpt4 key购买 nike

我的索引文件是

<body>
<form method="POST" action="post.php" >
<input name="name">
<input type="submit" value="submit">
</form>
</body>

post.php 是

<?php 
$sec = 'qaswed';
if($sec == $_POST['name'])
{
echo "true";
}
else
{
echo "false";
}

?>

当我只是在 post.php 文件中写 TRUE 代替 $_POST['name'] 时,无论我在索引文件中提交什么,结果都是显而易见的,即

if($sec == TRUE) { echo "true"; } else { echo "false"; }//true

但是,当在索引文件中时,如果我在名称参数中发送 TRUE 那么为什么输出为 false ..即

if($sec == $_POST['name']) { echo "true"; } else { echo "false"; }// false when name=TRUE

当我从其他页面变量(请求)发送此值时,它的计算结果为 false。为什么会发生这种情况?

最佳答案

当您编写 if ($sec == TRUE) 时,则为 true,因为您正在使用 == 自动类型转换> 运算符,php 将 $sec 字符串转换为 bool 类型,因为它不是 (bool)false(不是字符串 'false'!!!) 或 (int)0,它变为 true,并且 true === true = true

如果你不希望php自动转换if中的值,那么使用===而不是==,这也会检查类型.

在另一种情况下,您发送的是“true”字符串,而“qaswed”字符串显然不一样,并且由于它们都是字符串,因此不会像前一种情况那样进行类型转换。

关于php - php中$_POST如何运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61725312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com