早上好。
我正在为未来的基于PHP 7的网站运行一个小测试。
我希望网页在超全局数组SESSION中记录用户登录名,然后,
如果用户输入登录名,该页面应显示指向论坛的链接
如果用户没有提供任何登录名但按下提交按钮,则该脚本应显示指向主页的链接。
操作页面与显示表单的页面相同。
这是代码的php部分:
<?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>';
}
?>
问题:当我按下提交按钮而不输入登录名时,else语句不适用。相反,if语句适用并在“登录名称为”之后显示空字符串。
我不明白这种行为的原因。有人可以帮忙吗?谢谢你,Christopho。
答案 0 :(得分:3)
当您有表单时,表单字段将提交给服务器,即使它不包含任何数据(空字符串)。 isset
只会告诉您表单字段是否完全提交。您需要检查自己名称是否包含任何内容,例如与strlen($_POST['loginName']) > 0
。