У меня есть файл .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
И .php-код form_submitting.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
И .php-код form_submitting.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");
И все же это не работает. Вместо этого он показывает мне Доступ запрещен! на веб-странице, чтобы перенаправить меня на index.php.
Как это решить? Помощь была бы очень признательна.
Одна точка — текущий каталог. Две точки — это один каталог вверх. Каждый уровень должен быть разделен разделителем каталогов. Но последняя строка, вероятно, должна привести вас туда, куда вы хотите, или отправить ее в корень.
Хорошо, одна точка ./ - та же папка, две точки ../ - одна папка вверх, а как именно написать две папки вверх?
@ user3120612 ../../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");
Забудьте поставить их в пример. У меня есть это в моем реальном сценарии. Я исправил текст своего вопроса.
@user3120612 user3120612 вы также забываете закрывающие кавычки в функции заголовка. вы должны использовать double ../ для перехода на один каталог вверх, если ваш index.php находится на одну папку выше.
@ user3120612 также проверьте разрешение, которое вы дали файлу index.php.
Опять опечатка. Я и это исправил. Мне жаль, что я грязный.
header("Location: .../index.php");...? Слишком много точек, чувак...