- Home
- Categorie
- Coding e Sistemistica
- PHP
- sessioni o cookies
-
Non devi mettere gli spazi nell'apertura e chiusura dei bbcode. Trovi qui la guida per l'utilizzo dei bbcode.
-
OK! Proviamo
[php]
echo "proviamo se funziona";
echo "Grazie";
[/php]Funziona!
Così se devo postare il codice si capisce qualcosa.
Prima o poi ci arrivo.
-
figurati!
-
Ciao! sono ancora qua.
Ho fatto tre pagine per provare il funzionamento del coockie, quello che volevo fare non mi riesce. Posto le pagine e vi spiego cosa voglio fare.
Prima pagina l'utente inserisce il suo nome nel campo nome e invia il modulo.[html]
[left]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<html xmlns=
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>
<body>
<br />
<br />
<!-- form inserimento nome utente -->
<form id="form1" name="form1" method="post" action="pagina5.php">
nome
<input type="text" name="utente" />
<input type="submit" name="button" id="button" value="Invia" />
</form>
<br />
<br />
</body>
</html>
[/left][/html]Seconda pagina recupero il nome utente e la stampo a video,
fino a qui tutto a posto, poi invio sempre dalla stessa pagina un cookie,
anche qui va bene nel browser trovo il cookie.[php]
<?php $utente= $_POST['utente'];
//Cookie da mandare all'utente
setcookie("utente", " Ciao $utente" , time ()+3600); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>
<body>
<!-- recupero nome utente e stampa a video -->
<?php
$utente = $_POST['utente'];
echo "Ciao $utente";
?>
<br />
<br />
<a href="prova6.php"> vai prova 6 </a>
</body>
</html>
[/php]Nella terza pagine vorrei recuperare il cookie, però con il nome dell'utente
che compila il modulo, se si chiama mario, dovrei mandare nel suo browser un cooockie con contenuto mario.
come devo fare?, io recupro solo il valore che imposto io.[php]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>
<body>
<!-- Stampa a video contenuto coockie -->
<?php
$utente= "utente";
{
echo $_COOKIE['utente'];
}
?>
</body>
</html>[/php]
Nell'attesa ci lavoro su!
Saluti.A me tra un po' fuma il cervello.
Ho corretto le tre pagine postate adesso funzionano, riesco a recuperare il valore del coockie.
Cosa ne pensate? Giusto così?
OK!
Adesso vediamo come riesco a usare il cookie, cosa si puo fare.
-
Piccola annotazione.
Come ti avevo già detto, questo:
[PHP]<?php
$utente= "utente";
{
echo $_COOKIE['utente'];
}
?>[/PHP]
è totalmente e assolutamente INUTILE.
Perché setti la variabile utente? tanto non la usi mai!
E le parentesi graffe a cosa servono? Non hai aperto nessuna funzione o condizione...
Semmai puoi fare in questo modo:
[PHP]<?php
$utente= $_COOKIE['utente'];
echo $utente;
?>[/PHP]
in questo modo ha senso, così se hai bisogno di usare nuovamente il cookie, basta che richiami la variabile utente!
-
Funziona!.
Ma io faccio un po' di confusione.
-
Ma con i COOKIE cosa conviene fare?, anche perche per l'area privata conviene usare le sessioni.
-
passare l'id e il nome dell'utente collegato, magari il fuso orario piuttosto che qualche configurazione personalizzata (colori di sfondo, grandezza testo, tipo font).
Nessuno di questi è un dato sensibile, anche perché una volta che intercettano l'id utente poi che fanno?
I dati sensibili invece sono quelli a rischio.
Quindi tutto quello che può essere altamente privato e segreto è meglio che passi per le sessioni.
-
Attenzione a non usare i cookie per passare l'id dell'utente, senza fare poi ulteriori controlli in ogni pagina, perchè a modificare il cookie e impostarsi l'id dell'amministratore o comunque di un altro utente è questione di qualche secondo.
Le sessioni da questo punto di vista garantiscono maggior sicurezza in quanto il visitatore non può modificarel cosi facilmente.
-
basta fare una codifica con la funzione
base64_encode()
e recuperarla con
base64_decode()Chi si sbatte per capire quale sia il codice allora merita di entrare con un altro id
-
Merita fino ad un certo punto.
-
Sono quì.
Se si usano le sessioni, bisogna scrivere in tutte le pagine, a inizio pagina, prima di tutto:[php]
<?php
session_start();
?>
[/php]Da quello che ho capito si possono usare contemporaneamente anche i
cookie, dove scrivo il cookie?Esempio:
[php]
<?php
session_start();
?><?php
setcookie ("nome","valore",time()+43200,"/");
?>
[/php]Così?, o vanno invertiti?, uno dei due avrà la precedenza?.
Anche nelle sessioni viane creato un cookie di sessione, chiamato: PHPSESSID, si puo' usare allo stesso modo di un cookie?.
Ciao!!Ciao!!
-
Allora pensa alle sessioni come a una bottiglia d'acqua e i cookie come ad una bottiglia di coca-cola.
Quando vai a tavola a mangiare puoi bere sia acqua che coca-cola, giusto? E non importa in che ordine le bevi, l'importante è che ti disseti.
Così è.
La sessione la apri e la chiudi (alla fine di ogni pagina) solo dove vuoi utilizzare le sessioni. I cookie li setti e li usi come più ti aggrada.
Sono due cose simili ma distinte. Quindi non pensarle come relazionate tra loro.
Sono due bottiglie differenti.
Diverso è se mi dici che vuoi aprire due sessioni con session_start() ripetuto.
Essendo la sessione un contenitore, una volta che apri il contenitore (con session_start() appunto) puoi metterci dentro tutte le sessioni che vuoi, ma la scatola rimane una sola.
I cookie, dicevo, sono una cosa totalmente a se stante (così come le sessioni) e non dipende da niente e nessuno. L'unico inconveniente, quasi nullo al giorno d'oggi ma bisogna sempre tenere conto degli imprevisti, è che l'utente che visita il sito abbia i cookie disabilitati.
Sta di fatto che come i cookie non ce n'è! Sono comodissimi!
Del PHPSESSID non te ne preoccupare ora. Impara a usare bene questi due strumenti e poi occupati di cose un pò più tecniche, non sei d'accordo?
-
Spiegazione molto interessante.
Però in ogni caso uno dei due sessioni o cookie, in certi casi sarà il più adeguato?.
Tipo (sessioni)area protetta, (cookie) carrello della spesa.
Da come ho capito sei più per i cookie.
Io con i cookie sono riuscito a passare in tutte le pagine il nome dell'utente che compilava un form.
Volevo sapere se si poteva inviare più di un cookie, e quanti.Ciao! a presto.
-
Infiniti.
Setti tutti i cookie di cui hai bisogno, proprio come hai fatto per il nome utente.
$_COOKIE['nome']
$_COOKIE['cognome']
$_COOKIE['id_utente']
$_COOKIE['fuso_orario']
$_COOKIE['automobile_preferita']
$_COOKIE['quotazioni_borsa']
ecc.....
e qualsiasi cosa tu abbia bisogno.
Le sessioni, come si diceva, sono adatte ai DATI SENSIBILI.
Un id utente non è un vero e proprio dato sensibile, anche se è meglio stare attenti.
Si può codificare come ho detto nel post precedente così hai una protezione in più con due parole in più.
-
Ok!, ma per recuperarli uso sempre dei form?.
Ciao! grazie.
-
ma per recuperarli uso sempre dei form?
Sai che non ha senso questa frase, vero?
li crei con la funzione setcookie() e li richiami con $_COOKIE[]
E' davvero semplice così come te la dico.
Non pensare sia chissà quanto complicato!
-
Ho capito che per crearli uso setcookie() e per richiamarli uso $_COOKIE[].
Però con i cookie si possono recuperare i dati di un form?
Un cookie puo avere un suo valore già definito, del tipo:( Ciao! benvenuto nel mio sito)?.
E' possibile invare un cookie con un link?Cosa ne pensi?
Il tutto si puo fare? ho sto sbagliando?.Ciao!!!
-
Puoi recuperare i valori inviati dall'utente mediante un form, e poi con la funzione setcookie impostare un cookie avente quel valore.
Puoi inviare un cookie contenente un url, sempre che dare ciò abbia un utilità.
-
OK! Grazie!
Comincio a vedere la luce, anche perchè molti dubbi stanno diventando certezze.
I VOSTRI Consigli sempre utili.Ciao!! Ciao!!!