所以我在本地机器上使用谷歌应用程序引擎启动器进行开发,在那里一切都正常,然后我上传了它,它突然停止了工作。这是我所说的代码:
包括/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的文件,该文件位于一个模板文件夹中,该文件夹的文件夹不在includes文件夹内,但与includes文件夹位于同一级别。
我会执行以下操作:
require __DIR__."/../templates/login.htm";
您不希望有前导/,因为它指向文件系统的根目录。如果不包括__DIR__
,那么php将根据初始请求首先访问的文件进行搜索。