// Mise à jour du message destiné à l'utilisateur sans recharger la page
function update_status( text, img )
{
document.getElementById("message").innerHTML = '
';
}
function update_status_form()
{
document.getElementById("LoginForm").innerHTML = '
';
}
function update_status_form_ok()
{
document.getElementById("LoginForm").innerHTML = '';
document.getElementById("message").innerHTML = '
';
}
function update_status_form_ko()
{
document.getElementById("LoginForm").innerHTML = '';
document.getElementById("message").innerHTML = '
';
}
// Manipulation de la requête d'identification de manière asynchrone
function handle_unlogin()
{
var loginRequest1 = null;
if (window.XMLHttpRequest)
{
loginRequest1 = new XMLHttpRequest();
if (loginRequest1.overrideMimeType)
{
loginRequest1.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject)
{
try {
loginRequest1 = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
loginRequest1 = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
update_status( "Impossible de communiquer avec le serveur", "wrong");
}
}
}
loginRequest1.onreadystatechange = function()
{
//update_status( "Veuillez patienter pendant le processus d'authentification ...", "busy");
if( loginRequest1.readyState == 4 )
{
if( loginRequest1.status == 200 )
{
if ( loginRequest1.responseText == "unlock" )
{
update_status_form_ok();
}
}
else
{ update_status_form_ko();
update_status( "Une erreur est survenue : " + loginRequest1.status + " " + loginRequest1.statusText, "handle");
}
}
};
loginRequest1.open("GET", "unlock.php", true);
loginRequest1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
loginRequest1.send(null);
};
function handle_login()
{
var loginRequest = null;
update_status( "Votre requête est en cours de traitement ...", "handle");
// Définition du connecteur en fonction du navigateur :
if (window.XMLHttpRequest)
{
loginRequest = new XMLHttpRequest();
if (loginRequest.overrideMimeType)
{
loginRequest.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject)
{
try {
loginRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
loginRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
update_status( "Impossible de communiquer avec le serveur", "handle");
}
}
}
// le secret d'AJAX réside en partie dans la réception et le traitement des résultats en background :
loginRequest.onreadystatechange = function()
{
update_status( "Veuillez patienter pendant le processus d'authentification ...", "busy");
if( loginRequest.readyState == 4 )
{
if( loginRequest.status == 200 )
{
if ( loginRequest.responseText == "good" )
{
update_status( "Identification réussie !" , loginRequest.responseText );
update_status_form();
} else if ( loginRequest.responseText == "wrong" ) {
update_status( "Le mot de passe est erroné !" , loginRequest.responseText );
} else {
update_status( loginRequest.responseText , "handle" );
}
}
else
{
update_status( "Une erreur est survenue : " + loginRequest.status + " " + loginRequest.statusText, "handle");
}
}
};
username = document.getElementById('username').value;
passwordid = document.getElementById('passwordid').value;
// le secret d'AJAX réside également dans l'envoi de la requête en background ( sans recharger la page ) :
loginRequest.open("GET", "login.php?username=" + username + "&passwordid=" + passwordid, true);
loginRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
loginRequest.send(null);
}