• User Attivo

    Il meta tag va bene cos', ovviamente lo devi mettere nell'<head></head> (occhio solo alle virgolette...)

    Per quanto riguarda la sicurezza secondo me è meglio sempre scrivere codice sicuro anche se si sviluppa in locale, poi uno magari si dimentica e sono problemi... 😉


  • User

    su quello sono d'accordo...però in questo caso l'applicazione che sto sviluppando è talmente incasinata che piano piano sto mettendo insieme tutti i pezzettini per ottenere qualcosa di accettabile!

    Prova col meta tag e poi aggiorno...


  • User

    Fatta la prova...
    Ma non è cambiato nulla...

    ho inserito questo codice
    [HTML]
    <html>
    <head>
    <meta http-equiv="refresh" content="2; url=asd.php">
    </head>
    <body>
    </body>
    </html>
    [/HTML]
    ma la pagina asd.php continua a stampare cookie non riconosciuto


  • User

    Fatta la prova...
    Ma non è cambiato nulla...

    ho inserito questo codice
    [html]
    <html>
    <head>
    <meta http-equiv="refresh" content="2; url=asd.php">
    </head>
    <body>
    </body>
    </html>
    [/html]
    ma la pagina asd.php continua a stampare cookie non riconosciuto


  • User Attivo

    Scusa in asd.php puoi fare un
    [PHP]echo "<pre>";
    print_r($_COOKIE);
    echo "</pre>";[/PHP]
    e vedere che ti dice?


  • User

    ecco fatto...

    l'output è

    Array()


  • User Attivo

    Ecco, allora vuol dire che il cookie non viene settato nella pagina originaria - però senza vedere tutto il codice, a questo punto, è impossibile capire che succede... Non è che c'è uno spazio o qualcosa prima del PHP? Hai i warning attivati (error_reporting almeno a E_WARNING e display_errors su stdout)?


  • User

    ti posto tutto il codice della pagina...
    [php]
    <?php
    include "../config.php";
    include "../lib/_db.php";

    $user = $_POST["username"];
    $pass = md5($_POST["password"]);
    $db = new Database();
    $db->connect();
    $query = "SELECT id, username, password FROM users WHERE username='$user' AND password='$pass'";
    $result = $db->query($query);
    $num_row = mysql_affected_rows();

    if ( $result == true && $num_row !== 0) {
    // utente riconosciuto
    $row = mysql_fetch_array($result);
    //
    //settaggio coockie
    //$cookie_name = $row["id"]."@versioner.com";
    $cookie = setcookie("versioner", $row["username"]);
    //$cookie = setcookie("versioner", "admin");
    //header("Refresh: 2; URL=asd.php");
    echo "Utente <b>".$row["username"]."</b> riconosciuto con successo"."<br>\n";
    if ( $cookie ) {
    echo "Cookie inviato con successo<br>\n";
    echo "Cookie: ".$_COOKIE["versioner"]."<br>\n";
    }
    else
    echo "Cookie non inviato";
    }
    else
    echo "Utente $user non trovato nel database";

    //controllare che l'utente esista e se esiste settare il coockie
    ?>
    [/php]
    [html]
    <html>
    <head>
    <meta http-equiv="refresh" content="2; url=asd.php">
    </head>
    <body>
    </body>
    </html>
    [/html]

    Tutto qui...non ci sono spazi prima di <?php, e la funzione setcookie() ritorna true...il che è strano visto che di fatto il cookie non viene settato...:gtsad:

    la visualizzazione errori è su E_ALL, quindi mi fa vedere tutto...


  • User Attivo

    Ah, forse ho trovato - mysql_fetch_array restituisce un ARRAY, non un HASH, quindi $row["username"] non dovrebbe esistere! Prova con $row[0] oppure usando mysql_fetch_assoc (o, ancora meglio, usando MDB2, ma questa è un'altra storia...)


  • User

    però aspetta un attimo... my_sql_fetch_array restituisce un array associativo, i cui campi sono nominati a seconda del nome della colonna della taballa da cui sono presi.

    Inoltre se io faccio echo $row["username"], mi viene stampato il valore corretto...Io provo, ma non credo proprio che l'errore sia li.
    Considera inoltre che ho usato sempre quella funzione in quel modo in tutti gli altri script, e non ha mai dato problemi di funzionamento.

    La cosa che mi stupisce è che questi problemi li ho solo quando tento di usare cookie o sessioni. Anche altri script già fatti e sicuramente funzionanti non mi loggano mai correttamente quando li uso in locale. Faccio ancora la prova di uploadare tutto su server e vedere se così funziona...

    Per conoscenza, cos'è MDB2??