Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Logout

  1. #1

    Logout

    Salve raga!
    Chiedo scusa in anticipo per la stupidità della domanda!
    Ho creato questo script per far loggare determinati utenti , ma non riesco in alcun modo a creare il logout!
    Qualcuno potrebbe aiutarmi??

    Codice PHP:
    <?php
    session_start
    ();
    $members = array(
      
    "utente1" => "password1",
      
    "utente2" => "password2",
     );


    $username = isset($_POST['username']) ? trim($_POST['username']) : "";
    $password = isset($_POST['password']) ? trim($_POST['password']) : "";

    if(
    $username == "" || $password == "")
          die(
    "Compila tutti i campi.");

    if(isset(
    $members[$username]) && $members[$username] == $password)
    {
          
    $_SESSION['auth'] = $username;
          
    header("Location:blacksite.php");
    }
    else
    {
          die(
    "Combinazione username/password errata.");
    }
    ?>

    Grazie in anticipo !

  2. #2
    Poniamo che la tua pagina si chiama login.php
    Se tu la linki senza nessun dato post, fai il logout:


    Codice PHP:
    <?php
    session_start
    ();
    $members = array(
    "utente1" => "password1",
    "utente2" => "password2",
    );

    $username = isset($_POST['username']) ? trim($_POST['username']) : "";
    $password = isset($_POST['password']) ? trim($_POST['password']) : "";

    if(
    $username == '' && $password == '')
    {
       
    session_destroy();

    } elseif (
    $username == "" || $password == "")
    {
       die(
    "Compila tutti i campi.");
    }

    if(isset(
    $members[$username]) && $members[$username] == $password)
    {
    $_SESSION['auth'] = $username;
    header("Location:blacksite.php");
    }
    else
    {
    die(
    "Combinazione username/password errata.");
    }
    ?>
    Ma come login, sarebbe da migliorare...
    Ciao!

  3. #3
    Originariamente inviato da fmortara
    Poniamo che la tua pagina si chiama login.php
    Se tu la linki senza nessun dato post, fai il logout:
    Ok... Però subentra un problema...
    Andando con un link diretto alla pagina protetta, quella potrà essere visualizzata perfettamente senza ripetere il login, per un bel pò di tempo...

    Ma come login, sarebbe da migliorare...
    Del tipo?
    Mi fai un esempio?

  4. #4
    Nessuno sa aiutarmi???

  5. #5
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Uno studente suppongo

    Diciamo pure che stai creando degli utenti hard coded dentro il tuo codice php piuttosto che utilizzare un DB per l'archiviazione degli stessi ed utilizzi password in chiaro.

    Nel momento in cui una autenticazione va a buon fine non fai altro che creare una variabile di sessione.

    $_SESSION['auth']

    Nelle tue pagine protette quindi controlli l'esistenza di tale variabile prima di visualizzarne il contenuto, altrimenti rispedisci l'utente alla pagina di login. Una cosa del tipo

    Codice PHP:
    <?php
    session_start
    ();
    if(!isset(
    $_SESSION['auth'] ))
      
    header("Location:login.php");
    ?>
    ...
    resto pagina protetta
    ...
    Dando un link per il logout non dovrai fare altro che invocare (a te come e quando... puoi seguire il suggerimento di fmortara per cui effettuare il logout su login senza trasmissione di dati post)
    Codice PHP:
    unset($_SESSION['auth']); 
    La funzione session_destroy(); che ti è stata proposta è anche valida, ma la ritengo un po' troppo invasiva, dato che in sessione potresti conservare delle informazioni relative alla sessione di navigazione che prescindono dalla autenticazione e che con tale istruzione andresti a perdere.

    Dopo l'unset le pagine protette con l'if di esempio sono immediatamente non più accessibili anche se linkate in modo diretto
    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  6. #6
    Grazie 1000!!!
    Mi ero complicato la vita per nulla!!!
    Grazie!

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.