有没有办法创建一个从header('Location:');
开始的路径。
例如:
formaction="/cert/forms/sessions/session-inc-info.php"
或
include($_SERVER['DOCUMENT_ROOT'].'/cert/forms/sessions/session-inc-info.php');
cert是我的根目录文件夹
我一直在尝试像
这样的代码header('Location:'.$_SERVER['DOCUMENT_ROOT'].'/cert/forms/sessions/session-inc-info.php);
和
header('Location:/cert/forms/sessions/session-inc-info.php');
对我来说唯一有用的就是使用../
header('Location:../../../session-inc-info.php');
但这对我来说很难,因为我有很多文件夹和子文件夹。 我有很多必须重定向的脚本。
感谢。
所以这是示例文件夹结构
所以content.php
会有一个重定向到session.php
的按钮,我已经这样做了,现在session.php
脚本必须有一个必须重定向的header('Location:');
到dashboard.php。现在这是我的问题。我现在不知道如何创建像
cert ----> dashboard -----> dashboard.php
答案 0 :(得分:4)
header("Location: http://".$_SERVER['HTTP_HOST'].$formaction;
位置应包含URL,而不是服务器文件路径
答案 1 :(得分:0)
您可以 理论上 在应用程序的根目录下创建一个PHP文件,并将其称为任何您喜欢的内容:说
redirect.php
。然后在这个redirect.php
内,你可以放一些看起来像这样的代码:
<?php
// CREATE AN ARRAY THAT WITH NUMERIC KEY
// THAT WILL CORRESPOND TO THE FILE YOU WISH TO REDIRECT TO (ACTUALLY LOAD)
// SINCE THIS IS A PSEUDO REDIRECT:
$fileMap = array(
0 => "./file-1.php",
1 => "./file-2.php",
2 => "./file-3.php",
3 => "./file-4.php",
4 => "./file-5.php",
5 => "./file-6.php",
6 => "/cert/forms/sessions/session-inc-info.php",
7 => "./../../session-inc-info.php", //<== YOU MAY KEEP ADDING TO LIST
);
// CHECK THAT THERE IS A GET PARAM WITH NAME: to
if(isset($_GET['to'])){
$fileKey = $_GET['to']; //<== GET THE `to` PARAM FROM $_GET
$loadableFile = $fileMap[$fileKey]; //<== TRANSLATE `to` KEY TO A LOADABLE FILE
// IF THE FILE [$loadableFile] EXISTS, LOAD IT
// OTHERWISE REDIRECT TO MAIN-APPLICATION PAGE (HOMEPAGE)
if(file_exists($loadableFile)){
require_once $loadableFile;
}else{
header("location: index.php"); //<== ASSUMES index.php IS THE MAIN FILE.
exit;
}
}
// IF ALL FAILS, STILL REDIRECT TO THE MAIN-APPLICATION PAGE
header("location: index.php"); //<== ASSUMES index.php IS THE MAIN FILE.
然后,在您希望执行重定向的每个页面上,您可以执行以下操作:
<?php
// ASSUMING YOU WANT TO RE-DIRECT TO: `./../../session-inc-info.php`
// AS YOU CAN SEE FROM THE `$fileMap` ARRAY, `./../../session-inc-info.php`
// HAS THE KEY OF "7"
// NOW ALL YOU CAN DO IS SIMPY APPEND "?to=7" TO `redirect.php`
// IN THE `header()` METHOD LIKE THIS:
header("location: redirect.php?to=7");
exit;
/*EXPECTED TO LOAD THE FILE: `./../../session-inc-info.php`
注意:
这实际上不是重定向(因为它基本上只是从给定的位置/路径加载[包含]文件,但是因为它似乎正在尝试加载一些文件,如:/cert/forms/sessions/session-inc-info.php
,假设这可能是一个选项。 要做一个真正的重定向:只需使用header()函数直接传递它的确切URL-Location要重定向。
干杯和好运......