【问题标题】:OpenCart PHP Custom Function Not WorkingOpenCart PHP自定义功能不起作用
【发布时间】:2013-09-01 00:12:47
【问题描述】:

我在 opencart 模板中包含自定义 php 函数时遇到了一些困难。这是发生了什么。

在 header.tpl 文件中,我将这段代码插入到以下部分:

<?php
$blah = file_get_contents("my_url_goes_here");
?>
<?php       
echo $blah;   
?>

然后在 footer.tpl 文件中,我插入以下代码:

<?php if(!isset($blah)) die; ?>

这样做的目的是检测我在header中的blah函数是否还在,如果不在则退出脚本。

但是,看起来 die 函数让我陷入了循环,因为如果我将它移到 header.tpl 文件中,那么所有代码​​都在一起,它可以按设计完美运行​​。

但是,如果我将它移动到我希望它去的 footer.tpl 文件,无论如何它都会杀死脚本,并且我最终会得到一个空白页面 - 即使 blah 变量在标题中是完整的。 tpl 文件。

这让我很困惑,如果它位于不同的文件中,我无法弄清楚为什么它不读取我的变量,因为这两个文件都应该包含在每个页面中。

提前感谢您的任何想法!

【问题讨论】:

    标签: php variables opencart


    【解决方案1】:

    它们是两个独立的实体,因此来自一个实体的数据不会存在于另一个实体中。我猜这是一种用于反向代码的检测脚本,就像许多针对 wordpress 模板所做的那样。 OpenCart 是基于 MVC 的非线性的,因此,标头中的 $blah 几乎在其中的代码完全执行后就会被忽略

    【讨论】:

    • Jay - 感谢您的帖子。你说得有点对。有什么办法可以解决这个问题,比如让变量全局化?
    • 您完全可以做到这一点。甚至可能将该值保存到会话值中,这样您就不必在每次页面加载时调用它,这将是您的服务器和客户端站点都不希望的开销
    • 好主意。我会尝试实现它。谢谢!!
    • Jay - 就将该值保存到会话中 - 看起来如何?
    • 我添加了 $_SESSION['blah'] = "$blah";在上面的第一个 php 函数之后,但我的页脚代码仍然没有读取它。
    猜你喜欢
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    • 2016-02-05
    • 2013-02-28
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多