Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    redirect dopo Ajax jquery

    Salve, ho realizzato una piccola funzione con ajax jquery per il controllo del login.
    In pratica, una volta inseriti i dati, tramite un form html, i dati vengono analizzati e nella stessa pagina viene scritto se l'utente è autorizzato oppure no... quello che vorrei fare (e che non sono capace di realizzare) è un redirect automatico nel caso in cui la query mi dia esito positivo, ora vi posto i codici.

    codice:
    <script type="text/javascript"> function checklogin() {
     	var execute = true;
     	var username = $('#username').val();
     	var password = $('#password').val();
     	if (username=="")
     	{
     		execute = false;
     		$("#error").html("Insert an username");
     	}
     	if (password=="")
     	{
     		execute = false;
     		$("#error").html("Insert a password.");
     	}
     	if(execute==true)
     	{
     		$.ajax({ 
    			type: "GET", 
    			url: "checkLogin.php",
     			data: "username=" + username + "&password=" + password,
     			success: function(response)
     			{ $("#error").html(response); }
     		});
     	}
     } </script> 
    <form method="GET" action="checkLogin.php" id="form_login" />
         Username: <input name="username" type="text" id="username" />
     
        Password: <input name="password" type="password" id="password" />
    
         <input name="login" type="button" id="login" value="Login" onClick="checklogin()" /> </form>

    Codice PHP:
    <?php include("core/global.php");
     
    $username $_GET['username'];
     
    $password $_GET['password'];
      
    $login = new mysql();

     
    $login->get($dbhost,$dbuser,$dbpass,$dbname);
     
    $login->connect();
      
    $checkLogin $login->select("user","id DESC","username='$username' AND password='$password' AND staff='1'");

     
    $num $login->numRecord();

     if(
    $num>0) echo "ok";
    else echo
    "Error! User not found!";
    ?>
    Fatemi sapere come posso risolvere questa faccenda!!

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Codice PHP:
    <?php include("core/global.php");
     
    $username $_GET['username'];
     
    $password $_GET['password'];
      
    $login = new mysql();

     
    $login->get($dbhost,$dbuser,$dbpass,$dbname);
     
    $login->connect();
      
    $checkLogin $login->select("user","id DESC","username='$username' AND password='$password' AND staff='1'");

     
    $num $login->numRecord();

     if(
    $num>0) {
         echo 
    "<script type=\"text/javascript\">location.href = \"http://www.sito.it/linkRedirect.php\"</script>";
    }
    else {
         echo
    "Error! User not found!";
    }
    ?>
    semplicemente metti uno script che fa il redirect nella pagina di risposta, anche se onestamente usare ajax per poi ricaricare comunque la pagina non mi sembra il massimo.

    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    A parte che questa discussione andrebbe spostata su js...
    ... di sicuro il codice così non funziona: il codice js inserito in un tag <script> viene eseguito solo al caricamento della pagina
    e poi: che senso ha, dentro js far stampare del codice js invece di eseguirlo direttamente?

    prova con

    Codice PHP:
    ...
    if(
    $num>0) {
         
    location.href ="http://www.sito.it/linkRedirect.php";
    }
    ... 

  4. #4
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Condivido comunque che fare un login in ajax per poi caricare un'altra pagina è piuttosto incongruente

  5. #5
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Originariamente inviato da Luke70
    A parte che questa discussione andrebbe spostata su js...
    ... di sicuro il codice così non funziona: il codice js inserito in un tag <script> viene eseguito solo al caricamento della pagina
    e poi: che senso ha, dentro js far stampare del codice js invece di eseguirlo direttamente?
    E' vero che il codice nel tag script viene eseguito solo al caricamento della pagina, ma devi considerare anche che quando fai una chiamata ajax la pagina che viene 'chiamata' viene caricata in quel momento, e quindi il codice viene eseguito tranquillamente.

    Originariamente inviato da Luke70
    prova con

    Codice PHP:
    ...
    if(
    $num>0) {
         
    location.href ="http://www.sito.it/linkRedirect.php";
    }
    ... 
    messa così invece non funzionerà mai anche perchè è pure sintaticamente sbagliato.



    P.S. effetivamente qui siamo più sul terreno di js che di PHP
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  6. #6
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    @las: mi fido di te per quanto riguarda l'esecuzione del js dopo una chiamata ajax... farò delle prove, non si smette mai di imparare

    In ogni modo credo che si possa fare direttamente le redirezione direttamente da js senza dover stampare il codice.

    Ho capito il mio errore: non avevo visto bene, pensavo stessimo lavornado sul lato client ed invece eravamo lato server... scusate... ero stanco!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.