Attualmente sto lavorando su un sito mobile con autenticazione utilizzando sessioni PHP con un database. Ho una pagina di accesso con un modulo che va a server_login.php su submit. Il file php crea quindi alcuni dati della sessione (memorizzare in $ _SESSION), e reindirizza l'utente alla pagina indice:Intestazione PHP (Posizione: ...): modifica forzata dell'URL nella barra degli indirizzi
header("location:../../index.php");
La nuova pagina web (index.php) carichi correttamente; tuttavia, quando l'intestazione reindirizza la pagina, l'URL nella barra degli indirizzi non viene modificato; rimane a * http: //localhost/php/server/server_login.php* anziché http: //localhost/index.php e quindi non è stato possibile caricare tutte le altre risorse che utilizzano il percorso relativo. È come se la pagina web continuasse a pensare che risieda in/php/server anziché in /.
Stranamente, il mio altro uso dell'intestazione ("posizione: ...") in logout.php funziona e reindirizza correttamente la pagina con una modifica dell'URL.
Mi sono assicurato che non ci siano uscite nel mio * server_login.php * prima del reindirizzamento dell'intestazione (sopra sono solo chiamate mysql da verificare) e ho usato anche ob_start() e ob_end_flush().
Esistono metodi per forzare la modifica dell'URL nella barra degli indirizzi (e quindi si spera che risolva il problema relativo del percorso)? O sto facendo qualcosa di sbagliato?
P/S: Sto utilizzando jQuery Mobile.
EDIT: Ecco il mio codice per il reindirizzamento che non cambia l'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's 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");
}
puoi mostrare il codice su come pubblichi i dati? – xdazz