Page 1 of 2

[PHP] cookie & sessioni

Posted: Sun Sep 30, 2007 3:52 am
by Sarn0!
chi sarebbe cos? gentile da spiegarmi in poche pariole il funzionamento dei cookie e delle sessioni in php??
ho letto guide in gire per la rete,per? voglio un consiglio pi? "a parole povere" per vedere se quello che ho capito ? giusto...
e poi,come si fa a mandare una variabile da una pagina1.php a una pagina2.php senza usare form??
Grazie anticipate

Re: [PHP] cookie & sessioni

Posted: Sun Sep 30, 2007 10:12 am
by hooah!!!
Sarn0! wrote:chi sarebbe cos? gentile da spiegarmi in poche pariole il funzionamento dei cookie e delle sessioni in php??
ho letto guide in gire per la rete,per? voglio un consiglio pi? "a parole povere" per vedere se quello che ho capito ? giusto...
e poi,come si fa a mandare una variabile da una pagina1.php a una pagina2.php senza usare form??
Grazie anticipate
Ricorda che...
L'http non ? fatto per lo scambio di valori.
Non ha nulla di residente in memoria.

Con le pagine dinamiche (php,asp etc) nasce quindi il problema di dover memorizzare valori che identifichino l'esecuzione della navigazione.

I metodi tradizionali sono (erano) 2.Cookies e url.

I cookies sono file di testo memorizzati dal server sulla macchina client
e rielaborati dal server alla successiva navigazione.
Come puoi ben capire sia i cookies che la url verso cui navigare sono oggetti modificabili e quindi violabili.

Le sessioni invece sono un associazione di entrambi i metodi.
Sfruttano cio? i cookies o/e le url per memorizzare tutte le informazioni associata ad essa scambiando un unica stringa, l'id della sessione associato al client che sta navigando SID.
La gestione dell'id ? univoca, avviene lato server con la creazione di un file di sessione (sul server).

Siccome non penso che aprirai sessioni in https ricordati di impostare nel php.ini (se lo puoi modificare)

Code: Select all

session.use_cookies=1 (che poi ? di default)
Un altro consiglio ? quello di rigenerare continuamente il sid tramite la funzione

Code: Select all

session_regenerate_id()

Prorpio tramite le sessioni e le variabili di sessione hai un metodo alternativo alle form per passare variabili durante la navigazione.

divertiti.....

Posted: Sun Sep 30, 2007 10:54 am
by Sarn0!
gennaro gentilissimo...per? credo sia stato un p? troppo generico...io parlavo di funzioni che mi servivano a gestire le sessioni ecc...

Posted: Sun Sep 30, 2007 12:38 pm
by Sarn0!
setcookie("progetto",$id_user,"/");

poi nell'altra pagina faccio
if(isset($_COOKIE['$id_user'])){
echo "Benvenuto ",$id_user," hai effettuato il login con successo";}

quale ? l'errore??

Posted: Mon Oct 01, 2007 4:29 am
by hooah!!!
Sarn0! wrote:setcookie("progetto",$id_user,"/");

poi nell'altra pagina faccio
if(isset($_COOKIE['$id_user'])){
echo "Benvenuto ",$id_user," hai effettuato il login con successo";}

quale ? l'errore??

Prova cos?

Code: Select all

if(isset($_COOKIE['progetto'])){
	echo "Benvenuto ", $_COOKIE['progetto']," hai effettuato il login con successo";
}

Posted: Mon Oct 01, 2007 12:12 pm
by Nuvoletta!
http://www.php.net/manual/it/ref.session.php

Datti una letta qua, che poi ne parliamo insieme ;)

Posted: Mon Oct 01, 2007 2:01 pm
by Nuvoletta!
Allora:

Innanzitutto imposta nel php.ini

Code: Select all

session.auto_start = 1
Cosa fa?? Genera e recupera l'id della sessione in maniera automatica su ogni pagina php.
php.net wrote:Il supporto delle sessioni vi permette di registrare numeri arbitrari di variabili che vengono preservate secondo richiesta.Quando un visitatore accede al vostro sito, PHP controller? automaticamente (se session.auto_start ? settato a 1) o su vostra richiesta (esplicitamente tramite session_start() o implicitamente tramite session_register()) se uno specifico id di sessione sia stato inviato con la richiesta. In questo caso , il precedente ambiente salvato viene ricreato.
Ricordati di riavviare il webserver.


Successivamente, potrai settare utilizzare i valori contenuti all'interno del vettore $HTTP_SESSION_VARS (o $_SESSION per versioni di PHP 4.1.0 e successive) e son globali per tutta la sessione.

Esempio:

Code: Select all

<php>
// pagina 1
$_SESSION['user_id'] = "chupa";
$_SESSION['pwd'] = "asdasd123";


<php>
<a href="pagina2.php">Verifica Utente</a>

Code: Select all

<php>
//pagina 2
echo "User Id  = " . $_SESSION['user_id'];
echo "Password = " . $_SESSION['pwd'];
<php>


Posted: Mon Oct 01, 2007 2:37 pm
by hooah!!!
Si ma avevo gi? corretto il suo codice.

Posted: Mon Oct 01, 2007 3:07 pm
by Nuvoletta!
Hooah!!! wrote:Si ma avevo gi? corretto il suo codice.
Tutte le srade portano a Roma Gennuz,
? per avere alternative :P


EDIT: e se poi non dicevo niente, queste "capere" dicevano: "eh, nuvoletta quando si tratta di far vedere che ne sa qualcosa non parla"

Lo sanno tutti che in realt? sei il mio maestro jedi: YODA

Image

Posted: Mon Oct 01, 2007 4:54 pm
by hooah!!!
Io non ce l'avevo con te...

ma sai Gibi voleva sapere solo le funzioni per leggere i cookies e niente di pi?

Posted: Mon Oct 01, 2007 9:47 pm
by Sarn0!
vabb? il pi? ? sempre buono...grazie ad entrambi

Posted: Tue Oct 02, 2007 1:44 pm
by Sarn0!
Hooah!!! wrote: Prova cos?

Code: Select all

if(isset($_COOKIE['progetto'])){
	echo "Benvenuto ", $_COOKIE['progetto']," hai effettuato il login con successo";
}
gennuz gi? provai cos?,e non mi va...mi reindirizza alla pagina ma non mi stampa nulla a video...perci? provai nel modo che ho poi postato qui sul forum...

il problema ? che non mi crea proprio il cookie...

Posted: Tue Oct 02, 2007 1:48 pm
by Nuvoletta!
Suca e fai come ho detto io

Posted: Tue Oct 02, 2007 1:57 pm
by Sarn0!
quello di nuvola funge

Posted: Tue Oct 02, 2007 2:13 pm
by Sarn0!
$_SESSION = array();
session_destroy();
setcookie("progetto","",time()-3600);
echo "Logout effettuato";

perch? mi da errore??