Se carichi tutti gli username in un array e lo spedisci al client dimezzi il lavoro degli hacker... devono solo trovare le eventuali password.
Inoltre spedisci ogni volta qualche (pochi? tanti? dipende ) k di dati ridondanti al browser, appesantendo la rete e caricando inutilmente server e browser.
Ti posto un esempio minimo in ajax: devi aggiungere una pagina lato server che esegua la verifica della presenza/asssenza dell'utente nel db e restituisca un semplice "OK" o qualcos'altro a seconda dei casi
codice:
<script type="text/javascript">
function createXMLHttp() {
var xmlhttp ;
try {
xmlhttp = new XMLHttpRequest(); // Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera, Internet Explorer 7
} catch (e) {
var MSXML_XMLHTTP_PROGIDS = new Array(
'MSXML2.XMLHTTP.5.0',
'MSXML2.XMLHTTP.4.0',
'MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP', // Internet Explorer 6
'Microsoft.XMLHTTP' // Internet Explorer 4,5
);
var success = false;
for (var i=0;i < MSXML_XMLHTTP_PROGIDS.length && !success; i++) {
try {
xmlhttp = new ActiveXObject(MSXML_XMLHTTP_PROGIDS[i]);
success = true;
} catch (e) {}
}
if ( !success ) {
alert('Cant create XMLHttpRequest - not supported');
}
}
return xmlhttp;
}
var xmlHttpTesto="";
function getText(qry) {
xmlHttpTesto="";
var xmlHttpObj = null;
xmlHttpObj=createXMLHttp();
xmlHttpObj.open('get', qry, false); // false=sincrono
xmlHttpObj.onreadystatechange = function() {
if (xmlHttpObj.readyState == 4) {
if (xmlHttpObj.status==200 || xmlHttpObj.status==304) {
xmlHttpTesto = xmlHttpObj.responseText;
} else { alert("connessione perduta - ricaricare la pagina"); return; }
}
}
xmlHttpObj.send(null);
delete xmlHttpObj;
}
function verifica(s) {
getText('verificautente.asp?ut='+s)
if (xmlHttpTesto!="") {
if (xmlHttpTesto!="OK") {
alert("Nome Utente gia' Usato");
}
}
}
</script>
</head><body>
....
<input type="text" size="15" name="utente" value="" onblur="verifica(this.value)">
ciao