Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Cookies e sessioni

  1. #1
    Utente di HTML.it L'avatar di yarea
    Registrato dal
    Apr 2004
    Messaggi
    62

    Cookies e sessioni

    Ciao a tutti,
    sto modificando uno script (gigante) per la registrazione degli utenti.
    Ho fatto un bel po' di modifiche per adattarlo al mio database, però ora mi sono imbattuta in questa funzione che non capisco. So cosa fa (o dovrebbe fare: settare un cookie per una nuova sessione?), però dà la risposta sbagliata, cioè non mi fa fare il login. Purtroppo non conosco queste funzioni di php... e così non capisco dov'è l'errore.
    qualcuno mi può aiutare?

    Questa è la funzione:

    function is_logged () {

    global $hello;

    $session_vars = explode(":", $hello);

    $hash = md5($session_vars[0].$this->secret);

    if ($hash != $session_vars[1]) {

    return false;

    }

    else {

    return array($session_vars[0], $session_vars[2]);

    }

    }

    Grazie mille!!!

    Dany

  2. #2
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392

    Re: Cookies e sessioni

    Dovrebbe funzionare così:
    Codice PHP:
    /* crea la funzione */
    function is_logged () {
    /* prende una variabile settata fuori dalla funzione */
    global $hello;
    /* esplode la stringa $hello */  
    $session_vars explode(":"$hello);
    /* cripta una variabile di sessione unita ad un'altra var */
    $hash md5($session_vars[0].$this->secret);
    /* fa un controllo su $hash e su $session_vars[1] */
    if ($hash != $session_vars[1]) {
    /* ritorna false, come un errore */
    return false;
    }
    /* oppure */
    else {
    /* ritorna un array */
    return array($session_vars[0], $session_vars[2]);
    }
    /* chiude la funzione */

    comunque devi darci alcune indicazioni, per esempio da dove viene la var hello

  3. #3
    Utente di HTML.it L'avatar di yarea
    Registrato dal
    Apr 2004
    Messaggi
    62
    Innanzitutto GRAZIE, e poi:

    Gran bella domanda!!!

    L'ho trovata in due altre funzioni, però mi sembra che venga inizializzata in login.
    le due altre funzioni sono queste nello script (a meno che siano sepolte in qualche altro file):

    function login ($username, $password) {

    $username = $_POST[username];
    $password=$_POST[password];

    if (!$username || !$password) {

    return $this->error[14];

    }

    else {

    if (!eregi("^[[:alnum:]_-]+$", $username)) {

    return $this->error[3];

    }

    if (!eregi("^[[:alnum:]_-]+$", $password)) {

    return $this->error[7];

    }

    mysql_connect($this->server, $this->db_user, $this->db_pass);
    mysql_select_db($this->database);

    $query = mysql_query("select id from authlib_login where username = '$username' and password = '$password'");
    $result = mysql_num_rows($query);

    mysql_close();

    if ($result < 1) {

    return false;

    }

    else {

    list ($id) = mysql_fetch_row($query);

    $hash = md5($username.$this->secret);

    setcookie("hello", "$username:$hash:$id", time()+3600);

    return 2;

    }

    }

    }


    function logout () {

    setcookie("hello");

    header("Location: $this->logout_url");

    }

    Help!!!
    Dany

  4. #4
    Utente bannato
    Registrato dal
    Apr 2003
    Messaggi
    1,119
    da qualche parte dovrebbe esserci
    $_COOKIE['hello'] = $hello;
    perchè c'è
    setcookie("hello", "$username:$hash:$id", time()+3600);

    quindi $hello è = 'usernameassword_criptata:id_utente'
    di conseguenza
    $session_vars[0] = 'username';
    $session_vars[1] = 'password_criptata';
    $session_vars[2] = 'id_utente';

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 © 2024 vBulletin Solutions, Inc. All rights reserved.