Visualizzazione risultati 1 fino 5 di 5

Discussione: cookie: inserire e estrarre i dati

  1. #1
    Guest

    Predefinito cookie: inserire e estrarre i dati

    premetto che sono una capra di php.

    devo inserire in fase di login dei dati nel cookie e successivam estrarli

    per settare i dati nel cookie ho fatto una funzione settacoockie:
    Codice PHP:
    function SettaCoockie($ID_UTENTE, $TEMPO)
    {
    setcookie('LOGIN', $ID_UTENTE, time()+$TEMPO); //IDENTIFICATIVO DELL'UTENTE
    }


    if(@
    $_GET["act"] == "login")
    {
    $codPassword = md5($_POST["password"]);
    $Sql = "SELECT * FROM `utenti` WHERE `username`='".@$_POST["username"]."' AND `password`='".$codPassword."' AND `stato`='1';";
    $Query = mysql_query($Sql);
    if(
    mysql_num_rows($Query) == 1)
    {
    $Dati = mysql_fetch_array($Query);

    if(@
    $_POST["ricorda"] == 1)
    $TempoDiValidita = 2592000;
    else
    $TempoDiValidita = 72000;

    SettaCoockie($Dati["cellulare"], $TempoDiValidita);

    header('Location: index.php');
    }
    else
    {
    header('Location: index.php');
    }
    vorrei però inserire piu di un "campo" nel cookie ma se aggiungo $Dati["email"] a SettaCoockie non mi va e non saprei poi come "richiamare" il secondo "campo" in un echo in un altro momento

    scusate terminologia e noobbaggine
    Ultima modifica di terreverdiane : 03-11-2010 alle ore 18.58.22

  2. #2
    gingir non è connesso Neofita
    Data registrazione
    01-11-2010
    Messaggi
    6

    Predefinito

    senza funzione prova questo

    Codice PHP:
    setcookie("LOGIN[cellulare]", $dati[cellulare], time()+$TempoDiValidita);
    setcookie("LOGIN[email]", $dati[email], time()+$TempoDiValidita);
    setcookie("LOGIN[address]", $dati[address], time()+$TempoDiValidita);
    non ti conviene usare una sessione per un login?
    Alcuni browsers non supportano i cookies e possono essere disabilitati

  3. #3
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,761

    Predefinito

    Citazione Originalmente inviato da gingir Visualizza messaggio
    senza funzione prova questo

    Codice PHP:
    setcookie("LOGIN[cellulare]", $dati[cellulare], time()+$TempoDiValidita);
    setcookie("LOGIN[email]", $dati[email], time()+$TempoDiValidita);
    setcookie("LOGIN[address]", $dati[address], time()+$TempoDiValidita);
    non ti conviene usare una sessione per un login?
    Alcuni browsers non supportano i cookies e possono essere disabilitati
    Anche le sessioni basano il loro funzionamento sui cookie, però son molto più sicure in quanto i dati vengono salvati sul server... invece lato client (dentro un cookie) viene salvato soltanto il cosiddetto "SESSION_ID", che, conoscendo quello, il server riesce ad associare il contenuto corretto dell'utente.

    Ecco perché non bisognerebbe rendere pubblico il proprio sessionid.
    Se tu cambiassi il tuo sid con il mio, saresti loggato con il mio account :-D

    Ciao!

  4. #4
    gingir non è connesso Neofita
    Data registrazione
    01-11-2010
    Messaggi
    6

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Anche le sessioni basano il loro funzionamento sui cookie, però son molto più sicure in quanto i dati vengono salvati sul server... invece lato client (dentro un cookie) viene salvato soltanto il cosiddetto "SESSION_ID", che, conoscendo quello, il server riesce ad associare il contenuto corretto dell'utente.

    Ecco perché non bisognerebbe rendere pubblico il proprio sessionid.
    Se tu cambiassi il tuo sid con il mio, saresti loggato con il mio account :-D

    Ciao!
    Le sessioni php usano un metodo duale cookie/URL, per questo li consiglio. PHP usa di default i cookie con le sessioni, se possibile questo viene settato per contenere la session ID. Ma l'altro metodo che usa è aggiungendo la session ID all'url (si può anche settare automaticamente nel php.ini con session.use_trans_sid).

  5. #5
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,761

    Predefinito

    Ritornando in discussione, consiglio di usare le sessioni per una maggiore sicurezza, salvando infatti i dati lato sever: infatti, se salvi i dati sui cookie, una volta effettuato il login, un utente potrebbe modificare il valore del cookie "LOGIN" con un altro nome, impossessandosi degli account altrui.
    (rileggendo una seconda volta il sorgente, si riesce ad impossessarsi di un altro account cambiando il numero di cellulare).

    Quindi, usando le sessioni, ti renderesti anche la vita più semplice per il loro utilizzo:

    infatti, basta ricordarsi che, nelle pagine dove le vuoi usare, devi mettere la session_start(); possibilmente come prima istruzione.

    A questo punto, hai tutto l'array $_SESSION[] a disposizione. Quindi potresti fare:

    Codice PHP:
    session_start();
    $_SESSION['user'] = $user;
    $_SESSION['email'] = $email;
    $_SESSION['...'] = $...;
    quindi, in un'altra pagina, puoi richiamare i dati con:

    Codice PHP:
    session_start();
    echo
    'Il tuo nome è: '.$_SESSION['user'].'<br>La tua email è: '.$_SESSION['email'];
    Ciao!
    Ultima modifica di alemoppo : 04-11-2010 alle ore 17.23.04

Regole di scrittura

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