Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [help] cookie

  1. #1

    [help] cookie

    Ciao!
    Avrei bisogno di aiuto per quanto riguarda la gestione dei cookie.

    Sto gestendo i cookie per l'utente che si logga, in pratica l'unica cosa che fa è cambiare il saluto da Benvenuto a Bentornato a seconda della visita.

    Ma se io mi trovassi a gestire più utenti che si loggano dalla stessa macchina?
    Se l'utente 'pippo', si logga per primo sarà lui ad essere memorizzato nel cookie, così se l'utente 'minnie' entra dopo, si troverà il messaggio 'Bentornato' anche se è la sua prima visita!


    Vi posto il codice:
    Codice PHP:
                #SALVO I DATI IN VARIABILI DI SESSIONE
                #RICORDA: IL COOKIE VALE PER UN SINGOLO UTENTE. SE UN ALTRO UTENTE SI LOGGHERà DA QUESTO COMPUTER RISULTERà SEMPRE "BENTORNATO"
                #se il cookie non è settato, lo setto e aggiungo lo username, setto la data di scadenza a 30 gg
                
    if (!isset($_COOKIE['user'])) {
                    
    setcookie('user'decodifica($_POST['username']),time() + 2592000);
                    
    #se ho settato il cookie vuol dire che l'utente si è loggato per la prima volta, allora il saluto sarà di benvenuto
                    
    $_SESSION['saluto'] = 'Benvenuto';
                }else{
                    
    #se è già settato il cookie vuol dire che l'utente è già entrato più di una volta, allora il saluto sarà di bentornato
                    
    $_SESSION['saluto'] = 'Bentornato';
                }
                
    $_SESSION['username'] = decodifica($_POST['username']);
                
    $_SESSION['password'] = $_POST['password'];
                
    header('Location: home.php'); 

    E questo è l'header dove cambio il saluto

    Codice PHP:
    <?php
    if (isset($_COOKIE['user'])){
        echo 
    "<tr><td class='testo'>".$_SESSION['saluto']." ".$_SESSION['username']."!</td></tr>";
    }else{
        echo 
    "<tr><td class='testo'>".$_SESSION['saluto']." ".$_SESSION['username']."!</td></tr>";
    }
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    fai scadere i cookie dopo poco tempo...

    non c'è una reale soluzione, è un pò come dire:

    se io loggo su facebook e non sloggo e poi un altro riapre la pagina di facebook sul mio computer si trova col mio account

    l'unica soluzione è lato utente e consiste nello sloggare.

    l'alternativa è dare breve durata di vita alla sessione e/o al cookie.
    sometimes it's just like teaching pigs how to fly

  3. #3
    Bhe.. non ho capito perché per il saluto usi una sessione, io modificherei, l'ultimo codice da te postato, in questo modo:

    Codice PHP:
    <?php 
    if (isset($_COOKIE['user'])){ 
        if (
    $_COOKIE['user'] == decodifica($_SESSION['username']) {
          echo 
    "<tr><td class='testo'>Bentornato ".$_SESSION['username']."!</td></tr>";
       }else {
          echo 
    "<tr><td class='testo'>Benvenuto ".$_SESSION['username']."!</td></tr>";
       }
    }else{ 
        echo 
    "<tr><td class='testo'>Benvenuto ".$_SESSION['username']."!</td></tr>"

    ?>
    Ma non ti assicuro che funzioni, non avendolo provato.

  4. #4
    Ma in questo modo per qualunque utente che non sia quello inserito nel cookie, uscirà sempre "Benvenuto"!

  5. #5
    Si, dovrebbe, ma non ti assicuro niente, visto che non l'ho provato, non era quello che volevi te, non volevi far uscire bentornato solo all'utente che ha creato il cookie?

  6. #6
    No, io volevo sapere se era possibile, e se sì come, creare un cookie per ogni utente (diverso) che utilizza lo stesso pc.
    Ad esempio metti caso che io e mio fratello usiamo lo stesso pc, e abbiamo entrambi un account su amazon.

    Con un cookie come il mio, se io mi loggo prima di lui per la prima volta, mi uscirà Benvenuto alla prima visita e Bentornato alle successive.

    Quando si loggherà lui uscirà sempre Bentornato (anche se è la prima visita) finché non scade il mio cookie.
    A quel punto sarà questione di chi per primo si logga!

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    per me stai affrontando il problema in maniera totalmente errata.

    non è importante cambiare il benvenuto se è la prima volta che logga su quella macchina, se proprio vuoi fare una cosa del genere cambialo se è la prima volta che logga in assoluto piuttosto.

    quindi traccia tutto tramite db e sessioni ed ignora il cookie.
    sometimes it's just like teaching pigs how to fly

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.