Вот структура папок моего веб-сайта:Почему header() не перенаправляет меня правильно?
myweb/
index.php
files/
autoloader.php
login.php
А вот мой сценарий:
// login.php
class login{
public function __construct() {
function signed(){
header('Location: ../');
exit;
}
}
public function index(){
echo isset($_SESSION['error_message']) ? $_SESSION['error_message'] : null;
if ($_SESSION['login'] == 1) {
signed();
}
$_SESSION['login'] = 1;
if ($_SESSION['login'] == 1) {
$_SESSION['error_message'] = 'something is wrong';
header('location: ../login');
}
}
}
Когда я загружаю этот путь:
localhost/myweb/login
Вот два случая:
$_SESSION['login']
равно1
: Мой скрипт перенаправляет меня на этот путь:localhost/myweb
$_SESSION['login']
не равна1
: Мой скрипт перенаправляет меня на этот путь:localhost
Первый случай нормально, я имею в виду, что работает, как ожидалось. Но второй случай ошибочен, я имею в виду, что он работает не так, как ожидалось. Во втором случае он должен перенаправить меня на этот путь: localhost/myweb/login
. Ну, как я могу это исправить?
Примечание: Все страницы проходят через index.php
.
Попробуйте следующее: header ('location:/login'); – CrazyVK56
@ user4887505 Неправильно .. В вашем случае он перенаправляет меня на этот путь «localhost/login», который является недопустимым. –
, если вы загрузите путь «localhost/myweb/login» и $ _SESSION ['login'] не соответствует 1 вот, вы уже находитесь в файле входа, так зачем вы перенаправляете страницу? – CrazyVK56