PHP if else 回显

Posted

技术标签:

【中文标题】PHP if else 回显【英文标题】:PHP if else echo 【发布时间】:2013-12-23 16:26:41 【问题描述】:

我的代码有问题。我有这个代码:

<?php include "../config.php"; ?>
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Title</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head> 
<? if (!empty($_SESSION['LoggedIn']))  ?>
    <div class="row">
        <div class="span2">
            <p><h3>Welcome <?=$_SESSION['login']?> loggedin: <?=$_SESSION['LoggedIn']?></h3> </p>
        </div>
    </div>
    <br>
    <div class="row">
        <div class="span2">     
            <h1>Menu</h1>

        </div>
        <div class="span5">   
            <h2>Header1:</h2>
        </div>
    </div>

  <?
     else 
  ?>  
          <h1>Error</h1>
  <?         
    
  ?>
</div>
</body>
</html> 

结果是:

Welcome admin loggedin: 1

Menu
Header1:
Error

为什么会出错???

我哪里错了?我认为所有支架都很好。也许这可能是我的本地主机的问题???或者我不知道。你能给我建议吗?

【问题讨论】:

看看你的来源。我想你会发现 PHP 还在那里。您是否设置了 Web 服务器来解析 PHP 文件? 会话变量是否已设置且可用?检查文件扩展名..是php,html吗? 发布浏览器的完整源码输出。 &lt;? ... ?&gt; 被解析了吗? 您似乎在最后三个 PHP 块中使用了短标签。 &lt;? 而不是 &lt;?php。检查 PHP 是否配置为使用短标签,或者不使用它们。 我相信,PHP 正在实际被评估。这就是从$_SESSION 检索值的方式。 IMO,问题出在其他地方; OP 没有把整个代码放在这里。 【参考方案1】:

我最好的猜测是您禁用了短标签。确保启用短标签(&lt;? 而不是 &lt;?php)。或者更好的是,不要使用它们!

&lt;?php替换你所有的&lt;?,完整的标签名将确保PHP被正确解析。

无论启用或禁用短标签,&lt;?= 仍将被评估和解析。

查看页面的源代码,看看那里是否可以看到 PHP 代码,如果可以,服务器不会解析短标签。

【讨论】:

PHP 正在解析中,登录名已打印出来。 @shanethehat:正确。我已更正。谢谢。我犯了一个愚蠢的错误:D 如果没有启用短标签,她只会在开始时收到错误。我不认为短标签有问题 @RishabhRaj:为什么?如果没有解析短标签,if/else 序列将失败。 &lt;? !== &lt;?=. 是的,&lt;?= 不是短标签,它是特殊的模板语法。【参考方案2】:

将您的页面保存为 .php 扩展名

【讨论】:

以上是关于PHP if else 回显的主要内容,如果未能解决你的问题,请参考以下文章

使用 while 循环回显 PHP 数组

如果两个条件为真,则 php 回显

表单提交后将 PHP 变量回显到 HTML [重复]

elementUI的级联选择器el-cascader

PHP - 假时获取布尔以回显假

如何避免在php中回显字符65279?