Visualizzazione risultati 1 fino 3 di 3

Discussione: Aiuto con: Auto login

  1. #1
    Guest

    Predefinito Aiuto con: Auto login

    ciao gente.
    sto cercando di lavorare su un auto login ma non riesco a venirne fuori.

    index.php
    Codice HTML:
    <form name="login" action="spt/login.php" method="post">
    Nome utente: <input type="text" name="username" /> 
    
    Password: 
    <input type="password" name="password" />
    Ricordami <input type="checkbox" name="autolog" value="1"/>
    <input type="submit" name="invia" value="Login" />
    </form>
    login.php
    Codice PHP:
    <?php
    if(!$_POST['username'] | !$_POST['password']){
    echo
    '<h1 align=center >:: Errore ::</h1>Devi inserire tutti i campi<br>';
    echo
    "<a href=javascript:history.back()>Indietro</a>";
    exit;
    }

    $usern = $_POST['username'];

    $query = "SELECT * FROM utenti WHERE username='$usern'";
    $check = mysql_query($query);
    if(!
    $check){
    die(
    mysql_error());
    }
    $row = mysql_fetch_array($check);
    if(
    $check && mysql_num_rows($check)<=0){
    die(
    "<div align=center><h1>&nbsp;&nbsp;Errore&nbsp;&nbsp;</h1>Non risulti registrato. <br>Torna <a href=javascript:history.back()>Indietro</a> <br>oppure <a href='../reg.php'> Registrati</a>.</div>");
    }

    $passw = md5($_POST['password']);
    if(
    $passw != $row['password']){
    die(
    '<div align=center><h1>&nbsp;&nbsp;Errore&nbsp;&nbsp;</h1>Password inserita <b>NON</b> corretta!. Torna <a href=javascript:history.back()>Indietro</a></div>');
    }
    else{
    ////header("Refresh: 3; URL=index.php");
    $_SESSION['username'] = $usern;
    $_SESSION['password'] = $passw;
    if(isset(
    $_POST['autolog'])){
    setcookie('autolog','loggato',time()+864000);
    setcookie('user',$usern,time()+864000);
    setcookie('pw',$passw,time()+864000);
    }

    echo
    "<div align=center><h1>&nbsp;&nbsp;Bentornato $usern&nbsp;&nbsp;</h1>Login effettuato con successo!<br><img src='../img/home48.png'><br><a href=../index.php> Clicca qui per tornare alla home page</a>.</div>";

    }
    ?>
    ogni pagina ha un include() alla pagina check_login.php
    Codice PHP:
    <?php
    session_start
    ();
    echo
    "in check_login<br>";
    if(isset(
    $_COOKIE['autolog'])){
    echo
    "cookie:",$_COOKIE['autolog'];}

    if (!isset(
    $_SESSION['username']) && !isset($_SESSION['password'])) {
    $loggato = 0; //NON loggato
    return;
    }else {
    $loggato = 1; //LOGGATO!
    }


    if(
    $_COOKIE['autolog'] == 'loggato'){
    $_SESSION['username'] = $_COOKIE['user'];
    $_SESSION['password'] = $_COOKIE['pw'];
    $loggato = 1;
    //rinfresca cookies
    $usern = $_SESSION['username'];
    $passw = $_SESSION['password'];
    setcookie('autolog','loggato',time()+864000);
    setcookie('user',$usern,time()+864000);
    setcookie('pw',$passw,time()+864000);
    }
    ?>
    ma non c'è verso: non riesco a rendere funzionante l'autologin. ogni volta devo reinserire i dati.


    grazie.

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Il problema è quel return in questo pezzo:

    Codice PHP:
    if (!isset($_SESSION['username']) && !isset($_SESSION['password'])) {
    $loggato = 0; //NON loggato
    return; // <== Non va bene
    }else {
    $loggato = 1; //LOGGATO!
    }
    Perché così, quando scade la sessione, non vai a recuperare i dati degli altri cookie e non fai l'autolog.

    Ti faccio notare che tenersi nome utente e password nei cookie per 10 giorni potrebbe non essere la migliore soluzione dal punto di vista della sicurezza!


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    grazie per la risposta.
    devo semplicemente togliere il return quindi?

    e riguardo alla seconda tua affermazione, come potrei procedere?
    i forum come fanno??

Regole di scrittura

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