PHP路径开始/

时间:2015-06-05 07:43:46

标签: php authentication

在HTML中,您可以将href设置为“/ folder / page”,并将开始/将转到Web应用程序的根目录(意味着它将从www.yoursite.com开始)并从那里继续。

现在,在PHP中,我可以这样做吗?我有一个问题,因为我有一个文件,总是需要从根开始,然后去一个文件夹。我不能使用相对路径,因为它将包含在其他页面中,因此,我不知道在我在根目录之前要上多少层。

我尝试使用“$ _SESSION ['DOCUMENT_ROOT']”但这给了我一个远离目录树的地址。例如(在测试网站上)我有这个URL: http://localhost:8888/kasseNet-BitBucet/

我希望这是我的根。目前它类似于“Applications / Mamp / htdocs”。

我怎样才能做到这一点?显然我可以使用绝对路径,但是然后我就不容易启动它,因为我必须将它改为不在localhost环境中。

我一直在谷歌上搜索我的屁股,但我似乎无法找到合适的人选。这应该是一项容易完成的任务。

为了完整起见,这是我的结构:

(假设我们在“root”中 - localhost htdocs / site文件夹) - 登录    * Authenticate.php    *的login.php - 其他    * test.php的 - default.php

现在,“default.php”和“test.php”都将包含 authenticate.php。 authenticate.php将重定向到login.php。现在,问题是,如果我将它包含在default.php中,我在Authenticate.php文件中对login.php的路径将是“Login / Authenticate.php”。但是,如果我将它包含在test.php中,我将不得不做“../Login/Authenticate.php”。这说明了问题,随着结构的增长,它只会变得更糟。

你可以想象,它是一个登录脚本,我在其中包含验证文件,如果用户没有登录,它将重定向到登录页面。我发现的所有例子,只是使用平面结构没有额外的目录,所以他们没有这个问题。

希望得到一些帮助,一直坚持思考解决方案xD

提前谢谢你。 最好的祝福 / JBJ

1 个答案:

答案 0 :(得分:0)

使用它来获取根URL并在其后添加任何内容。

$root = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . '/';

如果您的路径类似于http://localhost:8888/kasseNet-BitBucet/path1/path2/index.php,则必须定义 kasseNet-BitBucet作为根目录。 PHP不能自由,kasseNet-BitBucet是您的根目录,path1例如不是。

所以:

$my_root_dir = 'kasseNet-BitBucet';
$root = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . '/' . $my_root_dir;