【问题标题】:Google app engine php 'require'' not working as expected谷歌应用引擎 php 'require'' 没有按预期工作
【发布时间】:2015-11-29 08:44:31
【问题描述】:

所以我使用 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();
}
?>

提交链接.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 的文件,该文件位于模板文件夹中,该文件夹的折叠不在包含文件夹内,而是与包含文件夹处于同一级别。

【问题讨论】:

    标签: php google-app-engine


    【解决方案1】:

    我会做以下事情:

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

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

    【讨论】:

    • 有效!谢谢!任何想法为什么我的版本不起作用?
    • 如果它在本地工作,这意味着您的代码托管在根目录中。
    • 不,它不是直接在 C: 上(这里是 Windows 用户)但是那里有几个子文件夹。
    • 为了更清楚地说明项目在C:\Users\kjh\Documents\SF WEBSITE\appengine-try-php-master
    • @ajon ,和文件夹的权限有关系吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 2014-10-26
    • 2019-06-14
    • 2014-03-22
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    相关资源
    最近更新 更多