Visualizzazione risultati 1 fino 5 di 5

Discussione: [AJAX] Caricare correttamente un url dopo login

  1. #1
    Guest

    Predefinito [AJAX] Caricare correttamente un url dopo login

    ciao gente.
    sto smanettando da qualche giorno con ajax e inizio a vedere qualche risultato.
    ancora però ho qualche problema.
    ho creato una procedura di login come prova per imparare ad usare ajax.
    sto quasi per finire solo che non funziona come dovrebbe.

    al click su invio form:
    ajax.js
    Codice:
    ...
    function form_submit(un,pw,sfida){
        var xmlHttp = getNewHTTPObject();
        var risorse = escape('user')+"="+escape(un)+"&"+escape('pw')+"="+escape(pw)+"&"+escape('sfida')+"="+escape(sfida);
        var url = "./include/login.php?__submit&"+risorse;
    
      	xmlHttp.open('POST', url, true);
        xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xmlHttp.onreadystatechange = logga(this.responseText);
    	xmlHttp.send(null);
    
       return true;
    }
     
    function logga(r){
        if (this.readyState != 4)
        	return;
    
        var result = r;
    ---->if(){}<---------
    }
    fa praticamente quasi tutto solo che
    1) non capisco come mai se scrivo la funzione logga a aparte NON funziona e NON vede il responseText, mentre se la concateno all'evento onreadystatechange almeno un alert (se lo inserisco) funziona.
    2) pagina login.php
    Codice PHP:
    ...

    session_regenerate_id();
    session_start();
    $_SESSION['userid'] = $rslt['id_utente'];
    $_SESSION['user'] = $rslt['username'];
    $query = mysql_query("UPDATE tabella_utente SET sfida_corrente=NULL WHERE username='".$username."'");
    echo
    $_SESSION['userid'].'|'.$_SESSION['user'];
    ...
    come si vede, se l'utente è registrato nel database, viene creata la sessione.
    io vorrei che "uscissero" i dati di sessione con l'echo e venissero letti dalla funzione "logga".
    a quel punto, semplicemente, un if esistono i due campi e magari anche un terzo, allora apri di nuovo l'home page modificata.
    3) non voglio che l'index abbia la query string concatenata! voglio solo l'url base pulito.

    quindi, mi sapreste aiutare per queste cosette?
    1) la funzione logga non funziona
    2) aprire la pagina index se i campi sono corretti, la pagina di errore se non è andato a buon fine
    3) ricaricare l'url della home page SENZA querystring.

    grazie!

  2. #2
    Guest

    Predefinito

    1) se chiami la funzione logga come una normale funzione ha un reference a this.readyState che non esiste. Dunque è assolutamente normale l'errore, ed è ovvioc he tu lo debba chiamare solo al caricamento dello stage.

    2) dovresti importarti un file xml di risposta in base alla correttezza o meno della coppia username-password.

    3) se non vuoi la query string devi passare i parametri nel body della pagina. Alteri il content-type della pagina e gli dichiarei x-www-form-urlencoded (o qualcosa di simile).

    Il consiglio che ti posso dare è di continuare a fare ricerche su internet... all'inizio l'argomento è ostico, ma ti potrai fare la tua funzione Javascript che andrai via via perfezionando e la userai immutata in tutti i tuoi progetti.

  3. #3
    Guest

    Predefinito

    grazie, intanto.
    riguardo alla domanda:
    1) come dovrei dichiarare la funzione, quindi, per farla funzionare?
    2) il punto 2 mi è completamente oscuro
    3) idem come al 2

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da lsdforum Visualizza messaggio
    grazie, intanto.
    riguardo alla domanda:
    1) come dovrei dichiarare la funzione, quindi, per farla funzionare?
    2) il punto 2 mi è completamente oscuro
    3) idem come al 2
    non si tratta di come dovresti dichiarare, ma di come devi chiamare la funzione.
    Tra l'altro non vedo manco la creazione dell'oggetto XMLHTTPRequest(). Qualsiasi spiegazione possa darti ora richiederebbe fiumi di parole che purtroppo non ho tempo di scrivere. Il consiglio è il solito. Gira un po' su internet ne trovi a quintali di documentazione. Un sito molto utile e pieno di esempi è quello di w3schools.org oppure ajaxitalia.it

    Quando sono sull'altro pc magari ti posto il codice che realizzo io per le chiamate.

  5. #5
    Guest

    Predefinito

    se guardi bene ci sono i puntini, perchè ho snellito il codice da visualizzare.
    a me interessava solo focalizzare l'attenzione sulla funzione in questione, perchè il resto funziona bene.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •