浏览器从同一个Web接收不同的(php输出)内容

时间:2017-05-26 17:42:40

标签: php apache browser cross-browser

我不知道如何解释这个(只看标题......),但是一个浏览器接收的php输出不同于另一个。

我有以下html / php代码:

<p><?= $lang->getW('t1_title') ?></p>

应该打印一些文字。在firefox中,我可以完美地看到该文本(并且通过irc确认ie和edge也是如此)。但是像Chromium(和chrome)和Opera这样的浏览器没有显示文本,而是在引号之间显示代码:

<p>t1_title</p>

以防万一它与服务器端有关:函数尝试从memcached或数据库中获取文本(下次将其保存在memcached中),所以最后它返回对应的字符串到那个id(在这种情况下是t1_title

功能代码是:

public function getW($word, $array = NULL) {
    $sql = TRUE;

    if ($this->cacheAvailable) {
        $text = $this->memCached->get("en_$word");

        if ( FALSE !== $text ) {
            $sql = FALSE;
            $word = $text;
        }
    }

    if ( TRUE === $sql ) {
        $mysqli = $this->aet->getAetSql();

        if ($stmt = $mysqli->prepare('SELECT * FROM locales_en WHERE name = ? LIMIT 1')) {
            $stmt->bind_param('s', $word);
            $stmt->execute();
            $stmt->store_result();

            $word = FALSE;

            if ($stmt->num_rows === 1) {
                $stmt->bind_result($id, $name, $text);
                $stmt->fetch();

                $text = nl2br($text);
                $this->memCached->set("en_$word", $text);
                $word = $text;
            }
        }
    }

    if ( NULL !== $array && FALSE !== $word ) {
        $word = $this->getVar($word, $array);
    }

    return $word;
}

编辑:解决方案是永远不要忘记使用调试代码,如:

echo $mysqli->error;

用于开发。

但我只是注意到我只上传了1个语言环境表而不是其余的(locales_es,locales_fr等等)。这就是错误消息的原因:表locales_xx不存在。

0 个答案:

没有答案