PDA

View Full Version : php e cookies


Herod2k
04-08-2005, 17:16
Ragazzi sto creando un sito e-commerce in php (è il mio primo sito php , prima scrivevo ASP).

Devo inserire delle stringe in dei cookies ogni volta che aggiungo un oggetto al carrello, da quello che ho capito leggendo in giro il comando è

setcookie ();
o setrawcookie ();

prendiamo il primo, setcookie ();

mettiamo caso che devo inserire il valore 50 nella variabile prezzo, la cosa viene più o meno così:
setcookie ("prezzo", "50");
il problema è che non posso ridare la stesso comando per mettere un'altro prezzo differente per esempio 40:
setcookie ("prezzo", "40"); perché mi cancella il precedente (ovviamente), allora ho cercato in giro ed ho visto che si possono mettere in forma di array quindi:
setcookie ("prezzo[1]", "50");
setcookie ("prezzo[2]", "40");
e così funziona.

La mia domanda è: come posso inserire i valori nel cookie senza specificare la posizione ?, Cioè voglio inserire un prezzo diverso in un nuovo record senza specificare la posizione, ho pensato che magari potrei usare un cookie di appoggio dove scrivere l'ultima posizione dell'array e usare quella come riferimento:
$posizione++;
setcookie ("prezzo[".$posizione"]", "40");

una cosa del genere...(non fate caso alla sintassi), ovviamente mi pare un sistema un po' artificioso.

Spero di essermi spiegato.

CiauzZ

ianaz
05-08-2005, 09:29
E se usassi il database?
Non so, forse é una risposta stupida, ma io avrei usato il database

Herod2k
05-08-2005, 09:45
E se usassi il database?
Non so, forse é una risposta stupida, ma io avrei usato il database
No niente db, il cookie è molto più comodo, sono tutti dati abbastanza superflui, e cmq vorrei dimiuire al minimo indispensabile gli accessi al DB.

Sono tutti dati che a fine transazione o alla chiusura del browser devono sparire, ti rendi conto, se tutta la gente che prova a mettere gli oggetti nel carrello e non porta a termine l'acquisto aggiungesse righe al db.

Come le tolgo dopo, come lo pulisco? Con il cookie se non imposti una data di scadenza, i dati vengono eliminati dal browser appena viene chiusa il programma.

VICIUS
05-08-2005, 10:45
Non ho capito bene quello che vuoi fare ma forse $HTTP_COOKIE_VARS[$nome] = $valore; fa al caso tuo.

ciao ;)

Herod2k
05-08-2005, 12:15
Non ho capito bene quello che vuoi fare ma forse $HTTP_COOKIE_VARS[$nome] = $valore; fa al caso tuo.

ciao ;)

No , forse mi sono spiegato male, $HTTP_COOKIE_VARS che è uguale a $_COOKIE (correggimi se sbaglio) ottiene la variabile leggendola dal cookie, il mio problema sta nella scrittura del cookie.

Vorrei creare un cookie con una variabile array, setcookie(nome[contatore],valore), e inserire il valore in modo sequenziale senza specificare il valore contatore, se per caso l'ultimo inserimento è stato setcookie (nome[3]=25), vorrei trovare un modo per aggiungere un altro valore, per esempio 30 alla posizione succesiva senza specificare che è la posizione 4.

Spero di essermi spiegato meglio.

VICIUS
05-08-2005, 12:35
No , forse mi sono spiegato male, $HTTP_COOKIE_VARS che è uguale a $_COOKIE (correggimi se sbaglio) ottiene la variabile leggendola dal cookie, il mio problema sta nella scrittura del cookie.

Vorrei creare un cookie con una variabile array, setcookie(nome[contatore],valore), e inserire il valore in modo sequenziale senza specificare il valore contatore, se per caso l'ultimo inserimento è stato setcookie (nome[3]=25), vorrei trovare un modo per aggiungere un altro valore, per esempio 30 alla posizione succesiva senza specificare che è la posizione 4.

Spero di essermi spiegato meglio.

Ecco ora è tutto piu chiaro.

Per risolvere puoi crearti una piccola classe. con un piccolo contatore interno e poi usare una funzione per impostare il cookie.

ciao ;)

Herod2k
05-08-2005, 12:50
Ecco ora è tutto piu chiaro.

Per risolvere puoi crearti una piccola classe. con un piccolo contatore interno e poi usare una funzione per impostare il cookie.

ciao ;)

Infatti a questo ci ero arrivato anche io...(vedi il primo post)...però immaginavo che se ce l'aveva ASP un comando così magari ce l'aveva anche PHP, vabbe allora farò così.

Grazie.

CiauzZ :D