- Home
- Categorie
- Coding e Sistemistica
- PHP
- sessioni o cookies
-
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!
-
Si, puoi usare cookie e sessioni insieme.
I cookie puoi usarli in qualsiasi momento non è necessario che il visitatore si registri prima...
-
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?
-
Perchè non dovrebbe venire riconosciuto finchè non si registra?
-
Se io entro in un sito dove non sono mai entrato come fa a riconoscermi?
-
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.
-
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.
-
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).
-
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.
-
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.
-
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.
-
Mi potreste fare un esempio pratico da provare in locale?
-
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!!!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 ]
-
Sono ancora in alto mare.
-
@mauranto99 said:
Sono ancora in alto mare.
Ma scusa, te l'ho spiegato in ogni salsa! Come fa a non esserti chiaro?
Ti ho pure scritto come fare... Nemmeno con un copia e incolla?
Allora leggiti una guida di php.HTML.it riguardo i cookie e le sessioni.
Ultima prova per farti capire:
setti il cookie dove ti pare (solo una volta! Non va ripetuto in ogni pagina a meno che non voglia cambiarne il valore) poi all'inizio di ogni pagina inserisci il cookie in una variabile:
$prova=$_COOKIE['nome_cookie'];
poi usi la variabile prova come ti pare. Ora è chiaro? Se no, cosa non ti è chiaro?
[URL=http://www.giorgiotave.it/forum/gt-world/101972-forum-gt-disponibile-alle-versioni-per-telefoni-cellulari.html]Postato via Mobile
-
Guarda un po'!.
Prima pagina[ PHP ]
<?php
$utente= "valore";
setcookie("utente", "valore", time ()+3600);
?>
[ /PHP ]
Seconda pagina[ PHP ]
<?php
$utente= "valore";
{
echo $_COOKIE['utente'];
}
?>
[ /PHP ]
Cosi a video mi stampa valore.
Nel browser trovo un coockie di nome utente, con contenuto valore.
Tutto quello che son riuscito a fare.E' giusto cosi?
Se cosi e giusto continuo da qui.Ciao!
-
Si è corretto, un cookie è tutto qui, nulla di più.
-
Questo:
$utente= "valore";
è inutile.
Lo usi nella funzione del settaggio del cookie? No.
Nemmeno nell'altra pagina.
Quindi toglilo.
Se invece lo vuoi usare nel settaggio del cookie allora fai:
[PHP]
$utente= "valore";
//senza virgolette
setcookie("utente", $utente , time ()+3600);
[/PHP]p.s. ma non ti avevo detto di non mettere gli spazi dentro [ PHP ]???
-
OK! il primo passaggio funziona.
Devo provare il secondo.$utente= "valore";
//senza virgolette
setcookie("utente", $utente , time ()+3600);Ma che spazio devo mettere, non è giusto così?, [ PHP ][ /PHP ]
Ciao! grazie.
-
Grazie! a tutti.