Ciao a tutti
ho un problema e non piccolo.
Sto realizzando un sistema di autenticazione un po' complesso e volevo gestire il tutto con AJAX.
Ho realizzato e credo bene la pagina php che mi fa il controllo dei dati, il problema è quando utilizzo il metodo $.post di JQuery.
mi spiego meglio io ho la seguente struttura:
Cod HTML
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>ACCESSO AREA RISERVATA</title>
<script src="javascript/jquery-1.4.2.min.js" type="text/javascript" language="javascript"></script>
<script src="javascript/shadowbox-3.0.3/shadowbox.js" type="text/javascript" language="javascript"></script>
<script src="javascript/login.js" type="text/javascript" language="javascript"></script>
<link type="text/css" rel="stylesheet" href="css/stylesheet.css" media="screen"/>
<link type="text/css" rel="stylesheet" href="javascript/shadowbox-3.0.3/shadowbox.css" media="screen"/>
</head>
<body>
<form action="login.php" name="formLogin" method="post">
<div id="content-login">
<h1>Accesso area riservata</h1>
<label for="usr">Inserisci Username:</label>
<input type="text" class="text" value="" maxlength="35" name="usr"/><span id="error-usr"></span>
<label for="psw">Inserisci Password:</label>
<input type="password" class="text" value="" maxlength="35" name="psw" /><span id="error-psw"></span>
<input type="submit" value="Accedi" class="button" />
</p>
Richiesta Registrazione
Password Dimenticata
</div>
<input type="hidden" name="action" value="login" />
</form>
</body>
</html>
il codice JS
codice:
$('form[name=loginForm]').submit(function() {
$.post('varie/check.php',
{usr : $('[name=usr]').val(), psw : $('[name=psw]').val(), act : $('[name=act]').val()},
function(data) {
if ( data.success) $('#error-psw').fadeIn();
else $('#error-usr').fadeIn();
}
}, 'json');
return false;
});
A mio parere non c'è nulla di sbagliato.
Premetto che lato server ho fatto
codice:
$data['success'] = true;
Allora se tolgo il controllo con JS e passo direttamente nella pagina check.php mi stampa in modo corretto
codice:
{"success": true}
Con firebug ho guardato la risposta che ottengo ma risulta il codice html generato dalla pagina login. php che è quella che chiama lo script