Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Problema con i COOKIE

  1. #1

    Problema con i COOKIE

    Ciao a tutti.
    Mi sto scornando con un poblema piuttosto anomalo.
    Ho sviluppato in php un applicativo autenticato con le session_id e con un cookie nel quale viene stoccato l'ID di sessione.
    Tutte le pagine dell'applicativo hanno in testa il controllo sull'autenticazione e, mediamente, funzionano a meraviglia.

    Ora, destino vuole che in una particolare pagina (elenco utenti, per intenderci) nella quale credo diversi <div> collassabili con una fuzione JS tipo queste (c'è ovviamente un JS incluso):

    <script type="text/javascript">
    var collapse_x = new animatedcollapse('dati_x',500,true);
    var collapse_2_y = new animatedcollapse('dati_y',500,true);
    </script>

    quando supero i 25 record, il COOKIE venga fatto a pezzi e svuotato del suo valore.
    Ho provato a commentare la creazione dei <div> collassabili e la pagina funziona a meraviglia con tutti i record visualizzati ma se lascio entrambi i collapse, al terzo accesso alla pagina perde l'autenticazione sul cookie.
    Non so se mi sono spiegato, ma attendo una mano dal cielo!

  2. #2
    Se non posti il codice PHP che stai utilizzando è difficile aiutarti.

  3. #3
    Sì, scusami, è che c'è un tot di roba.


    Allora il cookie viene settato in questa funzione chiamato all'atto del login. COOKIE_NAME è definita in un file incluso.

    function auth_session_begin($user_id)
    {
    $session_id = auth_generate_sid();
    $time = date("'Y-m-d H:i:s' ",time());
    $data = date('d-m-Y');

    $sql = "INSERT INTO sessions
    (session_id, session_user_id, session_start)
    VALUES ('$session_id', $user_id, $time)";
    $result = mysql_query($sql);

    setcookie(COOKIE_NAME, $session_id);
    return true;
    }


    La funzione qui sotto è quella di autenticazione. Al terzo accesso alla pagina, quando si perde il COOCKIE, vengo rimandato alla pagina DENIED_PAGE2 che si scatena, appunto, qualora si perda il nome del COOKIE.

    function auth_check_user()
    {
    global $_COOKIE;

    if (isset($_COOKIE[COOKIE_NAME]))
    {
    $session_id = $_COOKIE[COOKIE_NAME];

    $sql = "SELECT u.* etc etc";
    $result = @mysql_query($sql);
    if (!$result)
    {
    die('Si è verificato un errore nella verifica della sessione.');
    }

    if (mysql_num_rows($result) == 1) {
    $user_info = mysql_fetch_array($result);
    return $user_info;
    }
    else
    {
    header('Location: '. DENIED_PAGE);
    exit;
    }
    }
    else
    {
    header('Location: '. DENIED_PAGE2);
    exit;
    }
    }


    Il COOKIE_NAME è settato nel file common_utenti.php come vedete qui sotto e viene chiamata la funzione di cui sopra.
    include('../common_utenti.php');
    $user_data = auth_check_user();
    extract($user_data);


    Ometto il codice html che genera i <div> resi collassabili dal codice nel post precedente ma si tratta di html puro e semplice.
    Grazie ancora!
    Se qualcuno ha qualche idea, sono tutto orecchi.

  4. #4
    Per quale motivo salvi il SID in un cookie?
    Perchè non usi semplicemente le sessioni?

  5. #5
    Purtroppo lo script, inzialmente, è stato concepito con l'utilizzo dei COOKIE.
    Potrei cambiarlo ma visto che tutti gli altri applicativi che girano sotto lo stesso pannello di autenticazione sono configurati in quel modo e funzionano bene stavo cercando la via meno onerosa per mantenere lo stato delle cose correggendo solo questo malfunzionamento.

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.