Buon giorno a tutti
sto costruendo un piccolo sistema di login, in ajax, con jquery. Il problema è il redirect dell' utente alla pagina personale quando la chiamata è completata.
Mi spiego meglio con il codice:
"Form" per la ricezione di user e password:
codice:
<div id="login-home" style="<?php if(isset($_SESSION['id'])) {echo "display: none";} ?>">
<label>Username:</label> <input type="text" name="login-home-name" value="" maxlength="70" style="width: 120px" />
<label>Password:</label> <input type="password" name="login-home-password" value="" maxlength="70" style="width: 120px" />
<button id="confirm-home-login" style="margin-top: 5px" name="confirm-home-login">Accedi</button>
</div>
Jquery che fa partire la chiamata ajax:
codice:
$("#confirm-home-login").click(function() {
var username = $("input[name='login-home-name']").val();
var password = $("input[name='login-home-password']").val();
if(username != "" && password != "") {
login(username, password);
}
});
....
.....
.....
function login(username, password) {
$.ajax ({
type: 'post',
url: 'ajax/main.php',
dataType: json,
data: {
action: 'login',
username: username,
password: password
},
success: function(response) {
if(response == 0) {
alert("Nome utente o password non riconosciuti");
} else {
$('#login-home').hide();
$('#login-succes').show();
//qui dovrei inserire il redirect?????
}
}
})
}
La chiamata ha successo, e nel file ajax/main.php ho questo:
codice:
case 'login':
$username = $_POST['username'];
$password = md5($_POST['password']);
$user = new db_user;
$loginUser = $user->loginUser($username, $password);
if($loginUsr) {
$result = array_merge($loginArt, $add);
$_SESSION['id'] = $result['id'];
echo json_encode($result);
}
break;
Come ho scritto (commentato) nel file .js vorrei che quando il login ha successo l' utente venisse reindirizzato verso la sua pagina personale.
Se in quella riga inserisco un normale redirect non riesco a vedere la pagina, e come se PHP non facesse in tempo a scrivere $_SESSION['id'] (che controllo per aprire o meno il pannello utente) e dunque ottengo "permesso negato".
Invece, se faccio un redirect manuale, cioè faccio il login, ricevo l' ok e digito nel campo url l' indirizzo del pannello.... funziona
Grazie in anticipo