如果规则返回错误导致PHP

时间:2016-07-19 10:08:06

标签: php

早上好。

我正在为未来的基于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。

1 个答案:

答案 0 :(得分:3)

当您有表单时,表单字段将提交给服务器,即使它不包含任何数据(空字符串)。 isset只会告诉您表单字段是否完全提交。您需要检查自己名称是否包含任何内容,例如与strlen($_POST['loginName']) > 0