Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Reindirizzamento login

  1. #1

    Reindirizzamento login

    Salve a tutti, stavolta chiedo una cosa molto semplice credo .
    Come faccio a fare in modo che la pagina login.php reindirizzi al pannello utente nel caso di utente loggato?

    Es: io mi loggo e poi digito sul browser login.php. Per come l'ho fatto io, mi rifà mettere i dati.
    Ovviamente non è bella come cosa, quindi vorrei fare in modo che se sono loggato mi vada direttamente al pannello mio, mentre se non sono loggato mi fa inserire i dati.

    Grazie

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    perchè fai scrivere all'utente l'indirizzo sul borwser? quando si loggano da qualche parte farai un controllo delle credenziali, e qui dovrai fare un semplice if, qualcosa tipo

    Codice PHP:
    if($accessoOK=TRUE){
        
    header('Location: pannelloUtente.php');
    }else{
         
    header('Location: login.php');

    questa è solo una base ovviamente, poi si può rifinire in mille modi a seconda delle esigenze (la variabile potrebbe essere una variabile di sessione, il valore potrebbe essere un codice complesso ecc..)

    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
    Originariamente inviato da las
    perchè fai scrivere all'utente l'indirizzo sul borwser? quando si loggano da qualche parte farai un controllo delle credenziali, e qui dovrai fare un semplice if, qualcosa tipo

    Codice PHP:
    if($accessoOK=TRUE){
        
    header('Location: pannelloUtente.php');
    }else{
         
    header('Location: login.php');

    questa è solo una base ovviamente, poi si può rifinire in mille modi a seconda delle esigenze (la variabile potrebbe essere una variabile di sessione, il valore potrebbe essere un codice complesso ecc..)

    No non hai capito. Se tu vai su un sito con la pagina del login e ti salvi l'indirizzo sul browser. Poi effettui l'accesso e incolli l'indirizzo della pagina del login, vieni automaticamente reindirizzato al pannello tuo. O per lo meno in un sito fatto bene dovrebbe essere così.
    Io invece se copio l'indirizzo www.miosito.it/login.php e lo metto una volta autenticato, mi fa ripetere il login. Come faccio per fare in modo che viene come hai detto tu?
    $accessoOK come dovrebbe essere?

  4. #4
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    registri una variabile di sessione che serve a dirti se l'accesso è già avvenuto o meno, e poi su login.php controlli quella variabile e fai il reindirizzamneto o dai il form di login

    Codice PHP:
    if($_SESSION['accessoAvvenuto'] = TRUE){
        
    header('Location: pannelloUtente.php');
    }else{
        
    // metti il form di login

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

  5. #5
    Io faccio così:

    Codice PHP:
    if($_SESSION['auth'] == TRUE){
                     
    header('refresh: 0; url=verifica_login.php');
        }
        else{    
            echo 
    "<center>
            Inserire i dati di accesso


            <form action=\"verifica_login.php\" method=\"post\"name=\"form1\">
            <table border=\"1\">
            <tr> 
            <td align=\"center\">Login:</td>
            <td align=\"center\"><input type=\"text\" name=\"username\" size=\"40\"></td>
            </tr>
            <tr> 
            <td align=\"center\">Password:</td>
            <td align=\"center\"><input type=\"password\" name=\"password\" size=\"40\"></td>
            </tr>
            </table>
            

            <input type=\"submit\" value=\"Invia dati\">
            </form>
            </center>"
    ;
        } 
    Ma se una volta loggatomi vado su login.php mi rivedo il form. Dove sbaglio?

  6. #6
    Prova così

    header('refresh: 0; Location: verifica_login.php');

    se non dovesse funzionare nella parte dove setti le sessioni scrivi $_SESSION['auth'] = "ok" e nel ciclo if passi questa variabile di sessione, in questo modo:

    if($_SESSION['auth'] == "ok") {
    header('refresh: 0; Location: verifica_login.php');
    }

    Inoltre un consiglio sulla programmazione, ti consiglio di settare la variabile di sessione che controlla se il login è già avvenuto così $_SESSION['auth'] = session_id(); e di passare al controllo if:

    if(isset($_SESSION['auth'])) {header('Location: verifica_login.php');}

    In effetti refresh=0 è inutile, visto che dici di aspettare 0 secondi per il refresh.

    Dimmi se funziona.

  7. #7
    Originariamente inviato da francescostella
    Prova così

    header('refresh: 0; Location: verifica_login.php');

    se non dovesse funzionare nella parte dove setti le sessioni scrivi $_SESSION['auth'] = "ok" e nel ciclo if passi questa variabile di sessione, in questo modo:

    if($_SESSION['auth'] == "ok") {
    header('refresh: 0; Location: verifica_login.php');
    }

    Inoltre un consiglio sulla programmazione, ti consiglio di settare la variabile di sessione che controlla se il login è già avvenuto così $_SESSION['auth'] = session_id(); e di passare al controllo if:

    if(isset($_SESSION['auth'])) {header('Location: verifica_login.php');}

    In effetti refresh=0 è inutile, visto che dici di aspettare 0 secondi per il refresh.

    Dimmi se funziona.
    Avevo già risolto grazie . Ho fatto così:

    Codice PHP:
    session_start();         
    if(
    $_SESSION['user_id']){                        
    header('refresh: 0; url=pannello_utente.php'); 
    else{             
    echo 
    "<center>         
    Inserire i dati di accesso

             
    <form action=\"verifica_login.php\" method=\"post\"name=\"form1\">         
    <table border=\"1\">         
    <tr>          
    <td align=\"center\">Login:</td>         
    <td align=\"center\"><input type=\"text\" name=\"username\" size=\"40\"></td>         
    </tr>         
    <tr>          
    <td align=\"center\">Password:</td>         
    <td align=\"center\"><input type=\"password\" name=\"password\" size=\"40\"></td>         
    </tr>         
    </table>         

             
    <input type=\"submit\" value=\"Invia dati\">         
    </form>         
    </center>"
    ;     


  8. #8
    insomma non avevi messo session_start()

    Alla prossima.

  9. #9
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Originariamente inviato da francescostella
    insomma non avevi messo session_start()

    Alla prossima.
    a parte session_start, che mi auguro ci fosse anche nelle versioni precedenti se pur non postato, credo che il problema reale fosse semplicemente la pagina a cui veniva reindirizzato

    header('refresh: 0; url=verifica_login.php');

    presumo che verifica_login fosse la pagina di accesso, infatti nella versione funzionante è diventato

    header('refresh: 0; url=pannello_utente.php');

    come è giusto che sia.

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

  10. #10
    Originariamente inviato da las
    a parte session_start, che mi auguro ci fosse anche nelle versioni precedenti se pur non postato, credo che il problema reale fosse semplicemente la pagina a cui veniva reindirizzato

    header('refresh: 0; url=verifica_login.php');

    presumo che verifica_login fosse la pagina di accesso, infatti nella versione funzionante è diventato

    header('refresh: 0; url=pannello_utente.php');

    come è giusto che sia.

    Si infatti! Calcola che una volta messo session start con verifica login faceva un loop...

    Cmq visto che vi vedo attivi, perchè non rispondete alla domanda irrisolta? Quella dei dati istantanei???

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.