当值为空时,启动带有数组的网站URL

时间:2014-02-13 21:20:16

标签: php arrays iframe

我正在尝试制作一个小搜索游戏,我正在创建一个命令行,在页面中间的iframe中打开网站(我没有将此iframe添加到页面中)。我必须说命令行字段也在iframe中。

您可以在此处查看和测试该页面:http://www.josdenhertog.nl/tnes/getin.php

现在出现问题:

当您只是使用鼠标并按下它以便在文本字段的开头看到光标并按键盘上的ENTER而不在此行中键入任何命令,然后它在iframe上变黑并且执行没有加载任何东西。

这是我到目前为止的代码:

$urlList = array ('test'  => 'commandline.php',
                  '  '  => 'commandline.php',
                  ' '  => 'commandline.php'
                   );      

if (isset ($_POST['command']) && strlen($_POST['command']) > 0) {

    # See if the command provided by the user exists in the list.
  if (array_key_exists ($_POST['command'], $urlList)) {

       #When Command exist.
    header ("Location: " . $urlList[$_POST['command']]);
  }
  else {
    # Command not found
    header ("Location: commandline.php");
  }
 }

我现在的问题是:

如果只按ENTER键而不在命令行中输入任何内容,我该怎么做,只加载commandline.php网页。就像那个数组变量:$ urlList

当问题出现时我很可怕,希望你明白我的意思:)。

2 个答案:

答案 0 :(得分:0)

大概你最后需要另一个else。当$ _POST ['command']未设置或strlen()为< = 0时,这将重定向回commandline.php。

$urlList = array ('test'  => 'commandline.php',
                  '  '  => 'commandline.php',
                  ' '  => 'commandline.php'
                   );      

if (isset ($_POST['command']) && strlen($_POST['command']) > 0) {

    # See if the command provided by the user exists in the list.
  if (array_key_exists ($_POST['command'], $urlList)) {

       #When Command exist.
    header ("Location: " . $urlList[$_POST['command']]);
  }
  else {
    # Command not found
    header ("Location: commandline.php");
  }
 } else {
    header ("Location: commandline.php");
 }

 die();

答案 1 :(得分:0)

将此添加到上面显示的代码的末尾,您只需要一个else语句,因为检查命令字符串长度和isset是您的问题背后的原因:

else {
    header ("Location: commandline.php");
}