Toon posts:

[PHP / COOKIES] arrays in een cookie

Pagina: 1
Acties:

Verwijderd

Topicstarter
oke, een vraagje, zit er een maximale lengte van een array dat je in een cookie pleurt ofzo ?

stel, ik heb de volgende array:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Array
(
    [16] => 2002-03-24 21:33:28
    [10] => 2002-03-24 21:33:30
    [12] => 2002-03-24 21:35:27
    [8] => 2002-03-24 21:35:29
    [14] => 2002-03-24 21:37:09
    [13] => 2002-03-24 21:37:18
    [6] => 2002-03-24 21:37:26
    [5] => 2002-03-24 21:37:31
    [4] => 2002-03-24 21:37:33
    [11] => 2002-03-24 21:37:39
    [1] => 2002-03-24 21:37:41
    [15] => 2002-03-24 21:42:51
)

daar wil ik dan met setcookie(cookie[3], $time); nog een waarde toevoegen, dan krijg ik de volgende array:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Array
(
    [10] => 2002-03-24 21:33:30
    [12] => 2002-03-24 21:35:27
    [8] => 2002-03-24 21:35:29
    [14] => 2002-03-24 21:37:09
    [13] => 2002-03-24 21:37:18
    [6] => 2002-03-24 21:37:26
    [5] => 2002-03-24 21:37:31
    [4] => 2002-03-24 21:37:33
    [11] => 2002-03-24 21:37:39
    [1] => 2002-03-24 21:37:41
    [15] => 2002-03-24 21:42:51
    [3] => 2002-03-24 21:43:25
)

zoals je ziet is die nieuwe er wel bijgekomen (onderaan), maar bovenaan is cookie[16] eruit gegooid! en dat is dus niet de bedoeling :'( |:(

iemand hier die mij verder kan helpen?

Verwijderd

En als je nu gewoon de hele array opslaat in je cookie, ipv $cookie[3]?

Verwijderd

Topicstarter
Op zondag 24 maart 2002 22:11 schreef DiEana het volgende:
En als je nu gewoon de hele array opslaat in je cookie, ipv $cookie[3]?
mjah, maar dan moet ik de hele array eerst laden, dan dingetje dr in proppe, en dan weer opslaan.. en gezien dit een vrij grote array kan worden.. doek dat liever niet.. maar ms dak dat maar meot doen dan...

Verwijderd

Op zondag 24 maart 2002 22:13 schreef jventer het volgende:

[..]

mjah, maar dan moet ik de hele array eerst laden, dan dingetje dr in proppe, en dan weer opslaan.. en gezien dit een vrij grote array kan worden.. doek dat liever niet.. maar ms dak dat maar meot doen dan...
Want nu sla je toch zomaar losse variabelen op, ipv de array? En daarom dat je ze ook, zoals je zelf zeg, moet ophalen als losse variabelen?

Verwijderd

Topicstarter
Op zondag 24 maart 2002 22:15 schreef DiEana het volgende:

[..]

Want nu sla je toch zomaar losse variabelen op, ipv de array? En daarom dat je ze ook, zoals je zelf zeg, moet ophalen als losse variabelen?
nee, als ik dan global $cookie; doe heb ik wel de hele array...

  • Grum
  • Registratie: Juni 2001
  • Niet online
der is een limiet qua data wat je mag opslaan in een cookie ..

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 09-09 11:02
In principe is er GEEN limiet aan de hoeveelheid data die in een cookie past. In de praktijk wordt er wel een limiet gesteld door de client agent. Volgens de RFC zal een agent minimaal 4096 bytes per cookie moeten kunnen opslaan. Als PHP de maximale lengte van de cookie hierop forceert (wat volgens de RFC niet zou hoeven) lijkt het me logisch dat het om minimaal 4096 bytes gaat en daar zit je nog lang niet aan. In de PHP manual kon ik hier verder niets over vinden. Ik heb dus helaas geen oplossing voor je, maar de limiet van de cookie heb je in ieder geval niet bereikt.

Verwijderd

Topicstarter
heb nu dit commentaar gebruikt (gevonden in php docs)

If you want to set a complete array in only one cookie, use these
functions:
PHP:
1
<?function store_array_in_cookie($cookiename, $array2store) {    $tmpstring = serialize($array2store);    setcookie($cookiename, $tmpstring, time()+3600*5, "/",".fbt.eitn.wau.nl");    unset($tmpstring);}function get_array_from_cookie($cookiename) {    $tmpstring = "global \$$cookiename";    eval($tmpstring);    unset($tmpstring);    if (isset(${$cookiename})) {        $tmparray=unserialize(stripslashes(${$cookiename}));    } else {        $tmparray = array();    }    return $tmparray;}?>

Verwijderd

volgende keer eerst php docs lezen en dan pas posten (toch grum) >:)

  • CyeZ
  • Registratie: September 2001
  • Laatst online: 10-09 14:15

CyeZ

Vroem vroem!!!

Jouw probleem lijkt met het volgende te maken te hebben:
There are limitations on the number of cookies that a client can store at any one time. This is a specification of the minimum number of cookies that a client should be prepared to receive and store.
300 total cookies
4 kilobytes per cookie, where the name and the OPAQUE_STRING combine to form the 4 kilobyte limit.
20 cookies per server or domain. (note that completely specified hosts and domains are treated as separate entities and have a 20 cookie limitation for each, not combined)
Servers should not expect clients to be able to exceed these limits. When the 300 cookie limit or the 20 cookie per server limit is exceeded, clients should delete the least recently used cookie. When a cookie larger than 4 kilobytes is encountered the cookie should be trimmed to fit, but the name should remain intact as long as it is less than 4 kilobytes.
Maar blijkbaar ligt bij de client die je gebruikt de limiet nog lager of is het een ander probleem.

[18:54] <Prammenhanger> |HunterPro|eet
[18:55] <Prammenhanger> lijkt best op
[18:55] <Prammenhanger> |HunterProFeet


  • eborn
  • Registratie: April 2000
  • Laatst online: 08-09 12:50
En anders zit er niets anders op dat gewoon alles lokaal op de server op te slaan.

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
denk ik ook

ik heb net ff getest
als ik cookies zet van 0 t/m 25
vallen ook de eerste 6 weg

SWINX[6]
bla+bla+bla+bla+bla+bla+bla+bla+bla
test.swinxunited.com/
1536
3377358464
29503191
3113991232
29479908
*
SWINX[7]
bla+bla+bla+bla+bla+bla+bla+bla+bla
test.swinxunited.com/
1536
3377358464
29503191
3113991232
29479908
*
en zo tot de 25
maar die voor de 6 zaten zijn weg
wel jammer, ik had zoiets ook wel kunnen gebruiken ;(

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Verwijderd

Loop met een for door je hele cookie heen en als je degene tegen komt die je wilt vervangen dan doe je dat...
Pagina: 1