谷歌应用程序引擎php'require''没有按预期工作

时间:2015-11-29 00:36:53

标签: php google-app-engine

所以我使用Google App Engine Launcher在我的本地计算机上进行了开发,一切正常,然后我上传了它,突然它停止了工作。这是我正在谈论的代码:

包括/ require_login.php:

<?php
session_start();
if (!isset($_SESSION["username"]) or !isset($_SESSION["userId"])) {
    require "/templates/login.htm"; //This works locally
    exit();
}
?>

submitlink.php:

<?php
    require "includes/require_login.php";
    require "templates/submitlink.htm"
?>

require_login.php中的require无效,但输出此错误:

Warning: require(/templates/login.htm): failed to open stream: No such file or directory in /base/data/home/apps/e~seminarfach-abi-links/1.388897696415952665/includes/require_login.php on line 4 Fatal error: require(): Failed opening required '/templates/login.htm' (include_path='.;/base/data/home/apps/e~seminarfach-abi-links/1.388897696415952665/;/base/data/home/runtimes/php/sdk') in /base/data/home/apps/e~seminarfach-abi-links/1.388897696415952665/includes/require_login.php on line 4

我也尝试了以下选项,所有这些都导致了这个错误(我认为):

require "../templates/login.htm"; //This dosen't work on my local maschine.
require "/../templates/login.htm"; //This works locally

只是说清楚:require_login.php文件位于名为includes的文件夹中。它尝试打开一个名为login.htm的文件,该文件位于templates文件夹中,该文件夹不在包含文件夹中,但与包含文件夹位于同一级别。

1 个答案:

答案 0 :(得分:0)

我会做以下事情:

require __DIR__."/../templates/login.htm";

您不希望具有前导/因为它指向文件系统的根目录。如果您不包含__DIR__,那么php将搜索相对于初始请求首次访问的任何文件。