vi posto il codice della pagina 'login.js' che includo in login.php. Il problema è che la funzione submitdata() (quando clicco il 'button') funziona solo la prima volta e solo con explorer! Io credo che il problema sia nel readyState che non arriva a 4. Qualcuno è in grado di aiutarmi?
Codice:
// method that sets up a cross-browser XMLHttpRequest object
function getHTTPObject() {
var http_object;
// MSIE Proprietary method
/*@cc_on
@if (@_jscript_version >= 5)
try {
http_object = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
http_object = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E) {
http_object = false;
}
}
@else
xmlhttp = http_object;
@end @*/
// Mozilla and others method
if (!http_object && typeof XMLHttpRequest != 'undefined') {
try {
http_object = new XMLHttpRequest();
}
catch (e) {
http_object = false;
}
}
return http_object;
}
var http_req = getHTTPObject();
function invia_dati() {
var dati_post = "username=" + encodeURIComponent(document.getElementById("username").value) +
"&password=" + encodeURIComponent(SHA1(document.getElementById("password").value)) +
"&ip=" + encodeURIComponent(document.getElementById("ip").value) +
"&datetime=" + encodeURIComponent(document.getElementById("datetime").value);
http_req.onreadystatechange = gestisci_risposta;
http_req.open('POST', './admin/loginpost.php', true);
http_req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http_req.setRequestHeader("Content-length", dati_post.length);
http_req.setRequestHeader("Connection", "close");
http_req.send(dati_post);
}
function gestisci_risposta() {
if(http_req.readyState == 4) {
var esito = http_req.responseText;
switch (esito) {
case "2":
alert("Combinazione Username/Password non corretta, riprova.");
break;
case "5":
alert("Errore nella connessione al database, riprova più tardi o contatta un amministratore.");
break;
case "6":
alert("Errore nella selezione del database, riprova più tardi o contatta un amministratore.");
break;
case "4":
alert("Login effettuato correttamente. Premi OK per essere reidirizzato alla sezione di Amministrazione.");
document.location.href = "./admin/index.php";
break;
default:
alert("Risposta del server non riconosciuta: " + esito);
}
document.images.loading.style.visibility = "hidden";
document.forms.login.button.value = "Login";
document.forms.login.button.disabled = false;
document.forms.login.username.disabled = false;
document.forms.login.password.disabled = false;
}
}
function SHA1 (msg) {/*OMETTO LA FUNZIONE CHE CALCOLA L'HASH SHA1*/}
function submitdata() {
document.forms.login.button.value = "Attendi...";
document.images.loading.style.visibility = "visible";
document.forms.login.button.disabled = true;
document.forms.login.username.disabled = true;
document.forms.login.password.disabled = true;
setTimeout('invia_dati()',2000);
}
Grazie