如果规则在PHP中返回错误结果
早上好 我正在一个基于PHP7的未来网站上运行一个小测试 我希望网页在超级全局数组会话中记录用户登录名,然后 如果用户输入登录名,页面应显示论坛链接 如果用户未提供任何登录名,但按了提交按钮,则纸条应显示指向主页的链接 操作页面与显示表单的页面相同 这是代码的php部分:如果规则在PHP中返回错误结果,php,Php,早上好 我正在一个基于PHP7的未来网站上运行一个小测试 我希望网页在超级全局数组会话中记录用户登录名,然后 如果用户输入登录名,页面应显示论坛链接 如果用户未提供任何登录名,但按了提交按钮,则纸条应显示指向主页的链接 操作页面与显示表单的页面相同 这是代码的php部分: <?php if(isset($_POST['loginName'])) { $_SESSION['loginName'] = $_POST['loginName'];
<?php
if(isset($_POST['loginName']))
{
$_SESSION['loginName'] = $_POST['loginName'];
echo 'Login name is : '.$_SESSION['loginName'];
echo '<a href="accessForum.php">Get to the forum !</a>';
}
else
{
echo 'No name provided. Try again or move back to <a href="index.php">homepage</a>';
}
?>
问题:当我按下submit按钮而不输入登录名时,else语句不适用。相反,if语句将应用并在“Login name is”之后显示一个空字符串
我不明白这种行为的原因。有人能帮忙吗?谢谢你,Christopho。当你有一个表单时,表单字段将被提交到服务器,即使它不包含任何数据(一个空字符串)
isset
只会告诉您表单字段是否已提交,即是否已提交。您需要自己检查名称是否包含任何内容,例如使用strlen($\u POST['loginName'])>0
当您有表单时,表单字段将提交到服务器,即使它不包含任何数据(空字符串)isset
只会告诉您表单字段是否已提交,即是否已提交。您需要自己检查名称是否包含任何内容,例如,使用strlen($\u POST['loginName')>0
请原谅拼写错误,并且不要介意这样一个代码的视觉效果(文本和链接之间没有空格):这只是为了测试目的。谢谢你!如果(isset($\u POST['loginName'])和&$\u POST['loginName']!=“”)也缺少会话\u start()@副总裁:有一个简写法:!空($\u POST['loginName'])
。在这两种情况下需要注意的是,“0”
将无法通过该测试;这可能是不需要的。请为拼写错误道歉,并且不要介意这样一个代码的视觉效果(文本和链接之间没有空格):这只是为了测试目的。谢谢你!如果(isset($\u POST['loginName'])和&$\u POST['loginName']!=“”)也缺少会话\u start()@副总裁:有一个简写法:!空($\u POST['loginName'])
。在这两种情况下需要注意的是,“0”
将无法通过该测试;这是正确的(尽管您也可以使用if(empty($var))
或简单地使用if($var)
)。但是,您应该检查isset()
以及内容是否为空,因为在不发布表单内容的情况下调用您的页面是可能的——例如,如果有人试图直接访问您的帖子页面的URL。@Simba您不需要检查isset()
和empty()
empty()
本身检查它是否isset()
。这是正确的(尽管您也可以使用if(empty($var))
或简单地使用if($var)
)。但是,您应该检查isset()
以及内容是否为空,因为在不发布表单内容的情况下调用您的页面是可能的——例如,如果有人试图直接访问您的帖子页面的URL。@Simba您不需要检查isset()
和empty()
empty()
本身检查它是否isset()
。