Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果规则在PHP中返回错误结果_Php - Fatal编程技术网

如果规则在PHP中返回错误结果

如果规则在PHP中返回错误结果,php,Php,早上好 我正在一个基于PHP7的未来网站上运行一个小测试 我希望网页在超级全局数组会话中记录用户登录名,然后 如果用户输入登录名,页面应显示论坛链接 如果用户未提供任何登录名,但按了提交按钮,则纸条应显示指向主页的链接 操作页面与显示表单的页面相同 这是代码的php部分: <?php if(isset($_POST['loginName'])) { $_SESSION['loginName'] = $_POST['loginName'];

早上好

我正在一个基于PHP7的未来网站上运行一个小测试

我希望网页在超级全局数组会话中记录用户登录名,然后

如果用户输入登录名,页面应显示论坛链接

如果用户未提供任何登录名,但按了提交按钮,则纸条应显示指向主页的链接

操作页面与显示表单的页面相同

这是代码的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>';
    }
?>

问题:当我按下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()