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吗? 发布浏览器的完整源码输出。<? ... ?>
被解析了吗?
您似乎在最后三个 PHP 块中使用了短标签。 <?
而不是 <?php
。检查 PHP 是否配置为使用短标签,或者不使用它们。
我相信,PHP 正在实际被评估。这就是从$_SESSION
检索值的方式。 IMO,问题出在其他地方; OP 没有把整个代码放在这里。
【参考方案1】:
我最好的猜测是您禁用了短标签。确保启用短标签(<?
而不是 <?php
)。或者更好的是,不要使用它们!。
用<?php
替换你所有的<?
,完整的标签名将确保PHP被正确解析。
无论启用或禁用短标签,<?=
仍将被评估和解析。
查看页面的源代码,看看那里是否可以看到 PHP 代码,如果可以,服务器不会解析短标签。
【讨论】:
PHP 正在解析中,登录名已打印出来。 @shanethehat:正确。我已更正。谢谢。我犯了一个愚蠢的错误:D 如果没有启用短标签,她只会在开始时收到错误。我不认为短标签有问题 @RishabhRaj:为什么?如果没有解析短标签,if/else
序列将失败。 <? !== <?=
.
是的,<?=
不是短标签,它是特殊的模板语法。【参考方案2】:
将您的页面保存为 .php 扩展名
【讨论】:
以上是关于PHP if else 回显的主要内容,如果未能解决你的问题,请参考以下文章