// 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 = '
\
'; document.getElementById("message").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); }