【问题标题】:Hello world, why this code doesn't work? [closed]你好世界,为什么这段代码不起作用? [关闭]
【发布时间】:2013-03-26 10:23:22
【问题描述】:

为什么我的浏览器不显示任何文字? 为什么不退出? 为什么退出不起作用?

<?php 
if(!isset($_POST)){
    exit;
}else{
    echo "any text";
}
?>

【问题讨论】:

  • 有错误吗?文本“在此处输入代码”将无法解析。
  • 我认为这个问题不值得反对。作者是新手,但他尝试了一些东西但他不明白,这就是他问的原因。即使对我们大多数人来说这是一个简单的问题,但对他来说却不是。谷歌解决方案或发现错误很难。
  • @Voitcus 阅读文档一点也不难。
  • @PLB 我知道,但是如果您正在学习,您不知道“在此处输入代码”是错误的。你可能甚至不知道有类似error_reporting() 的东西,你把它关掉了。您看不到任何错误,因此您不知道存在语法错误。
  • @Voitcus 我敢打赌 enter code here 出现在 SO 文本编辑器中。 OP 问题中的实际失败是(s)他正在检查是否设置了 $_POST,并且由于 $_POST 是超全局的,因此它总是被设置(除非配置被修改)并且这在文档中明确写了。

标签: php if-statement exit


【解决方案1】:

请查看 PHP 手册并检查 PHP Basic Syntax

删除线

在此处输入代码

替换

if(!isset($_POST)){ exit; }

与

if(empty($_POST)){ exit("There is no Post data"); }

它应该可以工作..

通常 $_POST 总是设置!

所以你可以检查它是否为空 - 如果你需要知道是否有 POST 数据..

【讨论】:

  • 非常感谢大家,一切顺利
【解决方案2】:

当您没有任何 POST 数据时,您的变量 $_POST 仍然是一个空数组,因此这意味着它已设置。 如果你想退出,你应该使用empty() 函数检查 $_POST 变量。

【讨论】:

    【解决方案3】:

    您应该检查 count($_POST) == 0 。因为 isset 将始终为真,因为此变量可用。

    【讨论】:

      【解决方案4】:
      1. 去掉“在此处输入代码”的文字并尝试。

      2. 添加错误报告(1);在页面顶部并尝试。

      3. 检查$_POST、print_r($_POST);中的值

         <?php 
        
           error_reporting(1);
        
           print_r($_POST);
        
           if(empty($_POST)){ exit; }
           else { echo "any text"; }
        
         ?>
        

      【讨论】:

      • 此“在此处输入代码”行稍后解释。
      • 你在这里打错了:error_reportin(1);
      • isset($_POST) 没有任何意义。
      猜你喜欢
      • 2017-08-22
      • 2011-01-15
      • 2017-05-24
      • 1970-01-01
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多