В настоящее время я работаю на мобильном сайте с аутентификацией, используя сеансы PHP с базой данных. У меня есть страница входа с формой, которая отправляется на server_login.php. Затем файл php создает некоторые данные сеанса (хранятся в $_SESSION) и перенаправляет пользователя обратно на индексную страницу:
header("location:../../index.php");
Новая веб-страница (index.php) загружается правильно; однако, когда заголовок перенаправляет страницу, URL-адрес в адресной строке не изменяется; он остается на * http://localhost/php/server/server_login.php* вместо http://localhost/index.php, и поэтому все мои другие ресурсы, которые используют относительные пути, не могут быть загружены. Как будто веб-страница все еще думает, что она находится на /php/server вместо/.
Как ни странно, мое другое использование заголовка ( "location:..." ) в logout.php работает и перенаправляет страницу с изменением URL-адреса.
Я удостоверился, что в моем * server_login.php * нет выходов перед перенаправлением заголовка (выше это просто вызовы mysql для проверки), и я использовал ob_start() и ob_end_flush() тоже.
Существуют ли методы изменения URL-адреса в адресной строке (и, следовательно, надеюсь, исправить проблему относительного пути)? Или я делаю что-то неправильно?
P/S: Я использую jQuery Mobile.
EDIT: Здесь мой код для перенаправления, который не меняет URL:
// some other stuff not shown
$sql = "SELECT * FROM $user_table WHERE email = '$myemail' AND password = '$mypassword'";
$login_result = mysql_query($sql, $connection);
$count = mysql_num_rows($login_result);
if ($count == 1) {
// Successfully verified login information
session_start();
if (!isset($_SESSION['is_logged_in'])) {
$_SESSION['is_logged_in'] = 1;
}
if (!isset($_SESSION['email'])) {
$_SESSION['email'] = $myemail;
}
if (!isset($_SESSION['password'])) {
$_SESSION['password'] = $mypassword;
}
// Register user name and ID
if ((!isset($_SESSION['name'])) && (!isset($_SESSION['user_id']))) {
$row = mysql_fetch_assoc($login_result);
$_SESSION['name'] = $row['name'];
$_SESSION['user_id'] = $row['user_id'];
}
header("Location: http://localhost:8080/meet2eat/index.php");
} else {
// Not logged in. Redirect back to login page
header("Location: http://localhost:8080/meet2eat/php/login.php?err=1");
}