Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Errore lettura cookies

  1. #1
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832

    Errore lettura cookies

    ciao gente.
    mi sapreste dire perchè una pagina che include uno script che controlla l'esistenza di un cookie con isset($_COOKIE['pippo']) non funziona?
    grazie.

  2. #2
    Che cosa intendi per "non funziona"?

    Questo codice funziona perfettamente:

    Codice PHP:
    <?php

    setcookie
    ('test''Hello World!');

    if (isset(
    $_GET['do'])) {
        if (isset(
    $_COOKIE['test'])) {
            echo(
    "Il cookie esiste!");
        }
    }

    ?>

    [url="?do=1"]Click Here[/url]

  3. #3
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    ho una procedura per i login.
    l'utente si logga, si creano i cookies.
    ogni pagina del sito ha un include_onxe allo script che devo controllare se l'utente è loggato o meno.

    i cookie sono creati perchè li controllo ogni volta, ma la pagina che fa il check isset() non li rileva
    Codice PHP:
    <?php
    if(!$_POST['username'] | !$_POST['password']){
        echo
    '<h1 align=center >:: Errore ::</h1>Devi inserire tutti i campi
    '
    ;
        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>Errore</h1>Non risulti registrato. 
    Torna <a href=javascript:history.back()>Indietro</a> 
    oppure [url='../reg.php'] Registrati[/url].</div>"
    );
        }

    $passw md5($_POST['password']);
    if(
    $passw != $row['password']){
        die(
    '<div align=center><h1>Errore</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','si',time()+864000);
            
    setcookie('user',$usern,time()+864000);
            
    setcookie('pw',$passw,time()+864000);
            }
        else{
            
    setcookie('user',$usern,time()+3600);
            
    setcookie('pw',$passw,time()+3600);
            }
            
                   
        echo
    "<div align=center><h1>Bentornato $usern</h1>Login effettuato con successo!
    [img]../img/home48.png[/img]
    [url='../index.php'] Clicca qui per tornare alla home page[/url].</div>"
    ;
        
        }
    ?>
    e così l'utente si è loggato.

    ogn pagina contiene include_once(); ed include questo script:
    Codice PHP:
    <?php
    session_start
    ();

    if (isset(
    $_COOKIE["user"]) && isset($_COOKIE["pw"])){ //<-- AM NON LI LEGGE! :...(
    echo "U:",$_COOKIE["user"] ,  $_COOKIE["pw"] ;
        if (!isset(
    $_SESSION['username']) && !isset($_SESSION['password'])) {
            
    $loggato 0//NON loggato
            #return;
            
    }
        else{
            
    $loggato 1;  //LOGGATO!
            
    }
        }


    if(
    $_COOKIE['autolog'] == 'si'){
        
    $_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);
        }
    ?>

  4. #4
    Il tuo codice solleva moltissimi notice, ed è vulnerabile da attacchi di SQL Injection (http://www.php.net/manual/it/securit...-injection.php). Ti consiglio di rivederlo.

    Per quanto riguarda i cookie, ti suggerisco di verificare il contenuto dell'array $_COOKIE con il seguente codice:

    Codice PHP:
    <pre><?php print_r($_COOKIE); ?>

  5. #5
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    si si lo so che quel codice fa schifo.
    in realtà non funziona neppure bene.
    ma al momento lo sto scalando, per cui sono partito dal check elementare e base sulle sessioni e sto cercando di implementarlo.
    per questo chiedo il problema dei cookie.
    non riesco a farglieli individuare
    nonostasten, ripeto, vegano creati e distrutti regolarmente. questo ammesso che il test sulla visualizzazione dei cookie direttamente dalle opzioni di FF sia attendibile.

    EDIT: allora attraverso la prova che mi hai fatto fare ho scoperto che, è vero che i cookie sono fisicamente presenti, perchè FF li individua, ma attraverso il codice tuo l'unica volta in cui vengono rilevati è al logout...
    altrimenti, anche se mi loggo e vado nelle pagine protette i cookie che creo io non vengono rilevati.. perchè?

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.