Premeso che sono alle prime armi con la programmazione web e già sto impazzendo con i primi programmi di login. Sto lavorando in weblocal con Aptana-EasyPHP e non riesco a fare colloquiare il programma JS-Ajax con l'altro (lato-server) PHP. Ho provato di inserire un alert per verificare il ritorno tramite ".responseText" e questo riceve tutto lo script PHP.
Ringrazierò se qualcuno mi da una mano o almeno uno spunto per poter continuare avanti.
il programma JS-Ajax è il seguente:
Codice:
// crea l'oggetto per la comunicazione AJAX con il server
// compatibile con tutti i browser che supportano AJAX
function crea_http_req() {
var req = false;
if (typeof XMLHttpRequest != "undefined")
req = new XMLHttpRequest();
if (!req && typeof ActiveXObject != "undefined") {
try {
req=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1) {
try {
req=new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
try {
req=new ActiveXObject("Msxml2.XMLHTTP.4.0");
} catch (e3) {
req=null;
}
}
}
}
if(!req && window.createRequest)
req = window.createRequest();
if (!req) alert("Il browser non supporta AJAX");
return req;
}
// l'oggetto per comunicare con il server
var http_req = crea_http_req();
// invia i dati del form al server
function invia_dati() {
var dati_post = "username=" +
encodeURIComponent( document.getElementById("nome_utente").value ) +
"&password=" +
encodeURIComponent( document.getElementById("password").value );
http_req.onreadystatechange = gestisci_risposta;
http_req.open('POST', 'loginCondominio.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);
}
// recupero e gestisco la risposta inviata dal server
function gestisci_risposta() {
if(http_req.readyState == 4) {
var esito = http_req.responseText;
alert (esito);
switch (esito) {
case '1':
document.getElementById("messaggio").innerHTML = "Errore: Nome utente errato";
break;
case '2':
document.getElementById("messaggio").innerHTML = "Errore: Password errata";
break;
case '3':
location.href = "menu.php";
break;
default:
alert('Risposta del server non riconosciuta: ' + esito);
}
}
}
-----------------------------------------------------------------------------------------
mentre il programma PHP è:
Codice PHP:
$username = utf8_decode($username);
$password = utf8_decode($password);
$password = sha1($password);
// provo ad effettuare il login con i dati recuperati dal form
//$esito = login($_POST['username'],$_POST['password']);
$esito = login($username, $password);
// converto in UTF8 la risposta restituita dalla funzione login()
$esito = utf8_encode($esito);
// invio la risposta al client
echo $esito;
// funzione per la verifica dei dati di login
function login($username, $password)
{
require("opendbCondominio.php");
$result=mysql_query("SELECT count(*) as total from condomini WHERE NOME_UTENTE = '$username'");
$data=mysql_fetch_assoc($result);
$num_occorrenze = $data['total'];
$sql = "SELECT PASSWORD, COGNOME_CONDOMINO FROM condomini WHERE NOME_UTENTE = '$username'";
$res = mysql_query($sql,$conn);
$info = mysql_fetch_row ($res);
$passw_corretta = $info[0];
$cognome = $info[1];
// se la passw non è stata trovata è perché nome_utente è errato
if($num_occorrenze < 1) {
return 1;
}
if($password != $passw_corretta) {
return 2;
}
if($password == $passw_corretta) {
return 3;
}
}
-------------------------------------------------------------------------------
anticipatamente grazie