- Home
- Categorie
- Coding e Sistemistica
- PHP
- sessioni o cookies
-
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.
-
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.