problema con ajax semplice login script

  • Creatore Discussione Creatore Discussione shivi
  • Data di inizio Data di inizio

shivi

Nuovo Utente
14 Feb 2012
25
0
0
ho creato un semplice login script studiando javascript ma però non riesco trovare cosa sbaglio perchè tutte le volte che clicco sul pulsante login mi da sempre messaggio enter usename and password . il mio codice javascript è in un file esterno
Codice:
<body onload="createXMLHTTPREQUEST();">
        <div id="wraper">
            
            <div id="header">
                <p>
                    <label>Username</label>
                    <input type="text" name="username" id="username">
                </p>
                <p>
                    <label>Password</label>
                    <input type="password" name="password" id="password">
                </p>
                <p>
                    <input type="submit" name="submit" id="submitlog" value="login Request" onclick="makeConnectionXMLHttpRequest();">
                </p>

            </div>
        </div>
    </body>


function createXMLHTTPREQUEST(){
    var xmlRequest = null;
    
    if(window.XMLHttpRequest){
        xmlRequest = new XMLHttpRequest();
    }else if(windows.ActiveXObject){
        xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    return xmlRequest;
}

function makeConnectionXMLHttpRequest(){
    var xmlConnection = createXMLHTTPREQUEST();
    var username = document.getElementById('username').value;
    var password = document.getElementById('password').value;

    xmlConnection.onreadystatechange = function(){
        if(xmlConnection.readyState == 4 && xmlConnection.status == 200){
            var response = document.getElementById('menu');
            response.innerHTML = xmlConnection.responseText;
        }else if(xmlConnection.status == 404){
            alert("Page not found or some error occurred");
        }
    }
    
    xmlConnection.open('POST','php.php',true);
    xmlConnection.setRequestHeader('content.type','application/x-www-form-urlencoded');
    xmlConnection.send("username=" + username + "&password=" + password); 
}

// qui ce il mio file php 

if(empty($_POST['username']) ||empty($_POST['password'])){
        print_r($_POST);
    }else{
        echo "Your name is : ".$_POST['username']." and your password is : ".$_POST['password'];
    }
 
si mi sn dimenticato di togliere print_r cmq il messaggio è enter username and password
 
correggi questa riga
Codice:
xmlConnection.setRequestHeader('content.type','application/x-www-form-urlencoded');
il - al posto del .
Codice:
xmlConnection.setRequestHeader('content-type','application/x-www-form-urlencoded');
 
Ultima modifica:
si adesso va alla grande grazie mille ma come faccio ricaricare la pagina tramite ajax una volta che login viene fatto ?
 
Ma ajax si usa propio per non ricaricare la pagina
ti conveniva inviare i dati direttamente con il submit
in ogni caso puoi mettere una
Codice:
location.href="pagina.php";
nel codice javascript per rilanciare la stessa o un altra pagina
 
ok guarda io sto facendo in questo modo però il problema è che se uno inserisce username e password non corretti la funzione window.setTimeout non deve partire finche login non va buon fine invece io lo sto faccendo controllando se username e password non sn vuoti allora ricarica la pagina che non e gusto
Codice:
if(xmlConnection.readyState == 4 && xmlConnection.status == 200){
            var response = document.getElementById('menu');
            response.innerHTML = xmlConnection.responseText;
            if(username != "" && password != ""){
                response.innerHTML = "login is ok wait we redirect to you on home page";
                window.setTimeout("doRedirect()",4000);
            }
        }

function doRedirect(){
    location.href = "index.php";
}

lo so che puo sembrare una perdita di tempo facendo tutto tramite ajax ma vorrei sapere per informazione se login fallisce allora window.setTimeout non parte finche non controllo nel mio database che username e password non corretti grazie mille
 

Discussioni simili