Visualizzazione risultati 1 fino 2 di 2

Discussione: Problema cookie

  1. #1
    provedilollo non è connesso Neofita
    Data registrazione
    24-01-2017
    Messaggi
    1

    Exclamation Problema cookie

    Il tutto funziona così: una persona dopo essersi loggata in index.html viene reiderizzata a login.php
    Codice:
    <?php>
    // Connessione al database
    $mysqli = new mysqli('localhost', 'provedilollo', '', 'my_provedilollo');
    if ($mysqli->connect_error) {
        die('Errore di connessione (' . $mysqli->connect_errno . ') '
        . $mysqli->connect_error);
    } 
    $loggato = 0;
    $username = $_POST['username'];
    $password = $_POST['password'];
     
    $username = filter_var($username, FILTER_SANITIZE_STRING);
    $password = filter_var($password, FILTER_SANITIZE_STRING);
     
    if (!$username || !$password) {
        $error = 'Username o password errati';
    }
     
    $query = $mysqli->query("SELECT * FROM login WHERE user = '$username' AND password = '$password'");
    if($query->num_rows) {
        $loggato = 1;
        setcookie(“autenticato”, ”si”); //cookie
    } else {
        $loggato = 0;
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    <body>
    <BODY BACKGROUND="https://static.vecteezy.com/system/resources/previews/000/093/696/original/vector-yellow-abstract-background.jpg">
    <center>
        <h1>Risultati Login</h1>
     
        <?php if ($loggato == 0): ?>
            <p style="color: red">Username o password errati/mancanti</p>
        <?php else: ?>
            <p>Benvenuto <?php echo $username ?></p>
            <A HREF="http://provedilollo.altervista.org/home.php">Clicca qua</A>
        <?php endif ?>
    </center>
    </body>
    </html>
    ... che crea un cookie chiamato "autenticato". Poi un utente va su home.php
    Codice:
    <?php>
    $lol = $_COOKIE['autenticato'];
    
    ?>
    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    <body>
    <BODY BACKGROUND="https://static.vecteezy.com/system/resources/previews/000/093/696/original/vector-yellow-abstract-background.jpg">
    <center>
        <h1>Risultati lettura cookie</h1>
     
        <?php if ($lol == "si"): ?>
            <p style="color: red">Sei autenticato</p>>
        <?php else: ?>
        	<p style="color: red">Non sei autenticato! Fai l'accesso</p>
            <A HREF="http://provedilollo.altervista.org/">cliccando qua</A>
        <?php endif ?>
        <?php echo $lol; ?>
    </center>
    </body>
    </html>
    ... solo che restituisce sempre non autenticato! Come posso risolvere grazie.

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    No, per il codice che hai scritto dovresti ricevere un errore di sintassi, in quanto in quello che hai riportato qua vedo delle virgolette tipografiche che dovrebbero invece essere virgolette normali.
    Inoltre non usare filter_var per prevenire sql injection: usa mysqli_real_escape_string. Non tenere le password in chiaro sul database: usa una funzione di hash, usa password_hash.
    Non andare a scrivere in un cookie se l'utente è autenticato o no: il cookie viene inviato dal browser ed in quanto tale può venire manomesso o falsificato. Fa semplicemente parte della richiesta HTTP, ed è quindi manipolabile da chi la effettua.
    Usa piuttosto le sessioni.

Regole di scrittura

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