【问题标题】:Site prints all PHP instead of using it站点打印所有 PHP 而不是使用它
【发布时间】:2014-04-13 06:38:25
【问题描述】:

另一个问题。我正在制作一个 CMS,我希望登录链接在我想要的时候消失。所以我可以在我的 adminCP 中配置它。当我“拨动开关”时,我的 configfunctions.php 将 $login 更改为 true。

我正在使用它:

<?php if($loginenabled = true) { '<li><a href="sample-login.html" class="login"><span class="mmLogin">Login</span></a></li>' }; ?>

但我的网站实际上会打印所有 PHP,当我执行其他 PHP 时也是如此。所以我的网站看起来像:

Home, About us, <?php if($loginenabled = true) { 'login' }; ?>

有人知道怎么解决吗?

韦斯利

【问题讨论】:

  • 你正在编辑的文件名是something.html吗?如果是这样,这就是为什么它不被处理为 php。
  • 不相关,但 if($loginenabled = true) 将始终返回 true,因为您使用的是赋值运算符 '=' 而不是 '==' 或 '===' 运算符。跨度>
  • ^...因为它将变量设置为true,而不是比较它。我不确定为什么 PHP 在这种情况下允许这个操作符。
  • AD7six,不,当然不是。只是一个 .php 文件。
  • 那么,当然,您的服务器配置错误,或者您在问题中输入的代码不能代表您的实际操作。

标签: php html


【解决方案1】:

您不能通过简单地创建一个字符串来输出 HTML 代码。要写入输出,可以使用echo 语句:

<?php if ($loginEnabled == true) {
    echo '<li><a href="sample-login.html" class="login"><span class="mmLogin">Login</span></a></li>';
}; ?>

注意单引号末尾的分号 (')。您还可以使用 PHP 的 alternate syntax 控制结构以获得更简洁的代码:

<?php if ($loginEnabled == true): ?>
    <li><a href="sample-login.html" class="login">
        <span class="mmLogin">Login</span>
    </a></li>
<?php endif; ?>

以上将完成同样的事情。另请注意,($loginEnabled = true) 始终为真,因为= 是一个赋值运算符。要检查$loginEnabled 是否为真,请使用:

if ($loginEnabled == true)

您也可以将其缩短为:

if ($loginEnabled)

详细了解assignment operators、comparison operators 和if statement。

【讨论】:

  • 好的,谢谢你,但它仍然没有回答我的问题。为什么我的页面打印所有代码而不是运行它。我用了你的方法->还在做....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-12
  • 1970-01-01
  • 2012-12-30
  • 1970-01-01
  • 2015-10-27
  • 2023-03-29
  • 2019-04-25
相关资源
最近更新 更多