• User

    sessioni o cookies

    Quale conviene usare?
    Per l'area privata ho usato le sessioni,
    Oltre quello i cookies li ho capiti poco.
    Ciao!


  • ModSenior

    Ciao mauranto99,

    dipende dall'utilizzo, poichè le sessioni hanno una durata molto più limitata rispetto ai cookie. I cookie sono facilmente modificabili per cui, devi sempre tenere presente di mettere controlli adeguati in base all'uso che ne fai.


  • User

    Le sessioni durano di meno perchè come si esce dal sito ho si effettua il logaut, la sessione scade; cosi vale anche per i coockies
    solo che i coockies una volta caricata la pagina riconoscono l'utente.
    Giusto?
    I coockies come le sessioni vanno messi a inizio pagina, pero non ho capito bene come crearli e come funzionano.

    Per le sessioni basta così?
    aperta sessione:

    session_start();
    if(IsSet($_SESSION['email'] ) && IsSet($_SESSION['pwd'] ) )

    chiusa sessione:

    session_start();
    session_destroy();

    Con i coockies non ho ancora provato, non capisco come rileggere le informazioni.


  • ModSenior

    Francamente ho capito poco di quello che hai detto, comunque i cookie li crei mediante la funzione setcookie, mentre per ottenere il valore di uno devi usare la varaibile globale $_COOKIE.
    La sessione va inviata come header al browser dell'utente, ciò si fa mediante la funzione session_start prima di essa non devono essere inviati altri output, per i cookie tutto ciò non è necessario.


  • User

    così?
    <? php
    setcookie("utente", "valore", time()+3600);
    ?>
    e così si recupera il valore.
    <? php
    / / stampa un cookie
    echo $ _COOKIE ["utente"];
    ? >
    Cosi preticamente invio questo coockie all'utente e poi recupero il valore.
    O si fa in altri modi?
    Ma le sessioni e i coockies non si possono usare insieme?


  • ModSenior

    Si, in quel modo. Puoi usarli anche insieme se c'è utilità nel farlo, dipende dai casi.


  • User

    Allora posso aprire una sessione dopo il login e nello stesso momento inviare un coockies?.
    L'utente per ricevere un coockies si deve prima registrare?
    CIAO!


  • ModSenior

    Si, puoi usare cookie e sessioni insieme.
    I cookie puoi usarli in qualsiasi momento non è necessario che il visitatore si registri prima...


  • User

    Allora quando un utente entra nel sito il coockie si carica nel browser dell'utente, ma non viene riconosciuto, se poi l'utente si registra entra in funzione il coockie.
    Il codice del coockie lo metto in tutte le pagine?


  • ModSenior

    Perchè non dovrebbe venire riconosciuto finchè non si registra?


  • User

    Se io entro in un sito dove non sono mai entrato come fa a riconoscermi?


  • ModSenior

    Credo tu abbiamo mal interpretato cosa sia un cookie, i cookie non sono utilizzati esclusivamente per l'autenticazione. I cookie vengono utilizzati per far conservare al visitatore delle informazioni, non è detto che siano esclusivamente per l'autenticazione, può servire per indicare ad esempio se ha visualizzato un popup per evitare di rimostrarglielo nuovamente.
    Serve solo per far conservare delle informazioni al visitatore.
    Spero di essere stato chiaro. 🙂


  • User

    Mi sa che ci sto capendo poco, se mi creo un coockie nel mio sito locale, dovrei ritrovarmelo nell'browser?.
    Va bene qualsiasi pagina?
    Adesso provo.
    Scusa il disturbo.


  • User

    Ho provato, il cookies l'ho trovato nel browser.
    <?php
    setcookie("utente", "valore", time()+3600);
    ?>
    e così si recupera il valore.
    <? php
    / / stampa un cookie
    echo $ _COOKIE ["utente"];

    ? >
    Così mi stampa a video (valore).


  • User Attivo

    Allora, il concetto di cookie è molto semplice.
    Pensiamo ad una variabile nome con valore Giovanni:
    $nome="Giovanni";
    Alla fine della pagina questa variabile finisce il suo corso, in quanto ogni variabile dura al massimo per tutta la pagina.
    Un cookie è come una variabile, con la differenza che viene salvato in un file all'interno del computer.
    Questo permetterà al sito nel quale è stato creato il cookie (se google crea un cookie rimarrà associato a google, così come repubblica o yahoo) di utilizzare quel cookie per settare dei parametri, come, ad esempio, la lingua.
    Facciamo l'esempio:
    [PHP]
    //Creo il cookie che conterrà la lingua scelta dall'utente.

    //l'utente clicca sulla bandiera italiana:
    setcookie("lingua","italiano",time()+3600);
    [/PHP]
    Letteralmente: crea un cookie di nome "lingua", assegnagli il valore "italiano" e fallo durare 1 ora (3600 secondi) dal momento in cui è stato creato.
    Questo cookie verrà salvato nel computer dell'utente che ha fatto la scelta e verrà ripescato dal sito in questione ogni qual volta che quell'utente entrerà nel sito, così avrà sempre la lingua scelta.
    Così com'è però serve a poco in quanto dura solo 1 ora. Basta aggiungere un bel pò di zeri dopo il 3600 e diventeranno anni, così che l'utente avrà sempre la lingua scelta.

    Il cookie è come una variabile, con il vantaggio di poter essere usato in ogni pagina del sito.
    Scrivere:
    setcookie("lingua","italiano",time()+3600);
    è come scrivere
    $lingua="italiano";
    La dovrai trattare nello stesso modo, con la differenza che la dovrai richiamare, come diceva giustamente thedarkita, tramite:
    $_COOKIE['lingua']

    Ti puoi creare tutti i cookie che vuoi. Sono comunque variabili, quindi pensale come tali.

    Altro esempio: vuoi passare un nome da una pagina ad un'altra? Basta che crei il cookie e lo recuperi nella seconda pagina. Mettendo un tempo breve (10 secondi) ti cancellerà in automatico il cookie.
    Questo metodo è per farti capire le potenzialità, ovviamente non è un sistema consono.

    La differenza con la sessione è che il cookie, come dicevo, viene salvato in un file sul pc dell'utente, mentre la sessione rimane aperta virtualmente nella memoria finché non chiudi il browser.
    Questo permette maggiore sicurezza in quanto i dati sensibili vengono trattati in locale mentre un hacker che riesce ad accedere al tuo pc avrebbe accesso ai cookies e, quindi, ai relativi dati sensibili.

    Prova a cercare il file dei cookie del tuo browser e ti accorgerai di cosa parlo.

    :ciaosai:


  • User

    Grazie della spiegazione ma non riesco a capire come recuperare il valore.
    Allora se io scrivo: <?php setcoockie("utente" "valore" time ()+3600); ?>
    Questo è un coockie, giusto,? per recuperare il suo valore scrivo:
    <?php echo $_COOCKIE ["utente"]; ?>
    Cosi a video mi stampa : (valore) cioe se scrivevo cane mi stampava cane.
    Oppure devo scriverlo così:
    <?php setcoockie("$utente" "$valore" time ()+3600); ?>
    Devo capire se quello che faccio è giusto, perchè con le prove che faccio in locale funziona ma come spiegavo stampa : valore o altro.
    Facendo le prove in locale ho guardato nei file temporanei del browser, salvava il coockie con il nome utente e non ho trovato niente di scritto.
    Spero di non farti impazzire, ma prima o poi arriverò.
    Grazie ancora.
    Oltre quello per scivere il codice colorato come hai critto te come si fa?, sembra tutto uguale.


  • ModSenior

    I cookie si trovano nella variabile globale $_COOKIE e non in $_COOCKIE.
    Per il codice colorato devi usare i bbcode, maggiori informazioni le trovi qui.
    Nel cookie dovresti trovare il valore della varaibile $valore, se non ha valore ovviamente il cookie risulta vuoto.


  • User

    Mi potreste fare un esempio pratico da provare in locale?


  • User Attivo

    Come ti dicevo, il funzionamento è molto semplice:
    un cookie è come una variabile quindi lo puoi trattare come tale.
    Se scrivi:
    [PHP]
    //attenzione alle virgole!!
    setcookie("utente", "valore", time ()+3600);[/PHP]
    è come se scrivessi:
    [PHP]$utente="valore";[/PHP]
    Attenzione a non mettere la $ nel setcookie, (cookie è il termine corretto) perché non serve.
    La funzione per settare un cookie è questa:
    setcookie("nome del cookie","valore del cookie", durata del cookie);
    non devi scrivere nulla di più.
    Sostituisci in nome del cookie e valore del cookie con quello che ti pare.
    La durata la setti come ti ho detto in precedenza.
    E non c'è molta distinzione tra il locale e il server remoto, a meno che non hai un server con php 4 e il remoto con il 5 e passa. Ci sono funzioni che sono state modificate tra le due versioni ma certamente non quelle basilari che servono a te, quindi vai tranquillo 🙂
    Attento alla corretta scrittura del codice. Una sola virgola manda in errore un intera pagina. A volte anche un sito intero.
    Quindi guarda bene quello che postiamo (esempio COOKIE e non COOCKIE piuttosto che le virgole) e cerca di essere sempre preciso, se no avrai sempre molti errori e grattacapi!!! :mmm:

    Per il codice colorato, quando rispondi a un post (non la risposta veloce), in alto vedi una pagina con scritto, piccolo piccolo, php. Se clicchi lì ti aggiunge due tag PHP tra parentesi quadre, il secondo con uno slash ( /PHP ) prima di php.
    Quindi fai:
    (metto gli spazi se no li nasconde, ma tu toglili; le quadre sono attaccate alle lettere)
    [ PHP ]
    echo "ciao!";
    [ /PHP ]


  • User

    Sono ancora in alto mare.