php - header() 在必须从超过 2 个嵌套文件夹重定向到页面时不起作用
php - header() does not work when it must redirect to the page from more then 2 nested folders
我有一个 .php 文件,在提交表单时会调用该文件。通过在该文件中使用 isset($_POST["submit"]) {} else { Header() }
,我试图阻止用户从浏览器直接向该文件键入 URL。当我遇到这样的情况时效果很好:
提交表单的位置 .php 文件
root_folder/folder_level_1/folder_level_2/form_submitting.php
header() 重定向到的索引页面的位置
root_folder/folder_level_1/index.php
而form_submitting.php的.php代码为:
<?php
session_start();
if(isset($_POST["submit"])) {
// some code
} else {
header("Location: ../index.php");
exit();
?>
但在这种情况下不起作用:
提交表单的位置 .php 文件
root_folder/folder_level_1/folder_level_2/folder_level_3/form_submitting.php
header() 重定向到的索引页面的位置
root_folder/folder_level_one/index.php
而form_submitting.php的.php代码为:
<?php
session_start();
if(isset($_POST["submit"])) {
// some code
} else {
header("Location: .../index.php");
exit();
?>
我也尝试将 header()
参数更改为:
header("Location: ...index.php");
header("Location: .././index.php");
header("Location: ./../index.php");
header("Location: ../.index.php");
header("Location: ./..index.php");
header("Location: ".$_SERVER["DOCUMENT_ROOT"]."/folder_level_1/index.php");
而且,它仍然不起作用。它在网页上显示 Access forbidden! 而不是将我重定向到 index.php
.
如何解决这个问题?非常感谢您的帮助。
你忘了写如果。应该是 if(isset($_POST['submit']...
if( isset($_POST["submit"])) {
// some code
} else {
header("Location: ../../index.php");
exit();
?>
你忘记了结束引号和../index.php如果你想向上一个目录。
尝试,如果你想去 2 个文件夹。
header("Location: ../../index.php");
我有一个 .php 文件,在提交表单时会调用该文件。通过在该文件中使用 isset($_POST["submit"]) {} else { Header() }
,我试图阻止用户从浏览器直接向该文件键入 URL。当我遇到这样的情况时效果很好:
提交表单的位置 .php 文件
root_folder/folder_level_1/folder_level_2/form_submitting.php
header() 重定向到的索引页面的位置
root_folder/folder_level_1/index.php
而form_submitting.php的.php代码为:
<?php
session_start();
if(isset($_POST["submit"])) {
// some code
} else {
header("Location: ../index.php");
exit();
?>
但在这种情况下不起作用:
提交表单的位置 .php 文件
root_folder/folder_level_1/folder_level_2/folder_level_3/form_submitting.php
header() 重定向到的索引页面的位置
root_folder/folder_level_one/index.php
而form_submitting.php的.php代码为:
<?php
session_start();
if(isset($_POST["submit"])) {
// some code
} else {
header("Location: .../index.php");
exit();
?>
我也尝试将 header()
参数更改为:
header("Location: ...index.php");
header("Location: .././index.php");
header("Location: ./../index.php");
header("Location: ../.index.php");
header("Location: ./..index.php");
header("Location: ".$_SERVER["DOCUMENT_ROOT"]."/folder_level_1/index.php");
而且,它仍然不起作用。它在网页上显示 Access forbidden! 而不是将我重定向到 index.php
.
如何解决这个问题?非常感谢您的帮助。
你忘了写如果。应该是 if(isset($_POST['submit']...
if( isset($_POST["submit"])) {
// some code
} else {
header("Location: ../../index.php");
exit();
?>
你忘记了结束引号和../index.php如果你想向上一个目录。
尝试,如果你想去 2 个文件夹。
header("Location: ../../index.php");