Page 1 of 1
How to compress a cookie in PHP?
Posted: Fri May 09, 2008 1:12 pm
by JAB Creations
How do you compress a cookie using PHP?
I know how to create a cookie...
Code: Select all
setcookie('cookie_name','cookie_value',time()+2592000,'/');
...and I know how to compress with PHP...
Code: Select all
//after headers, before content...
ob_start("ob_gzhandler");
//after content ends...
ob_end_flush();
Re: How to compress a cookie in PHP?
Posted: Fri May 09, 2008 1:30 pm
by JAB Creations
This
seems to work *
however* I'm not sure how to check the size of the cookie? Firefox and Chris Pederick's Web Developer Toolbar don't display individual cookie size; what does?
Code: Select all
$value_compressed = gzcompress($value_initial, 9);
setcookie('user_theme',$value_compressed,time()+2592000,'/');
Re: How to compress a cookie in PHP?
Posted: Fri May 09, 2008 3:49 pm
by onion2k
Web dev toolbar lets you see the contents of the cookie. As cookies are just strings of data copy it into a script and run strlen() on it.
Re: How to compress a cookie in PHP?
Posted: Fri May 09, 2008 4:21 pm
by JAB Creations
Well the toolbar came in handy when I kept deleting domain cookies and adjust the length of a variable's string.
I figured if the cookie size was too large it just would not be set in the browser; I was correct.
So I created an obnoxiously long string of letters and numbers and set PHP to create two cookies, one using the uncompressed string and the second using a compressed version of the same string.
The maximum length allowed for a cookie is 4085 characters (using Minefield build 2008050906). When I add one or more characters to the string below the uncompressed cookie is not set. The uncompressed string is 4085 characters long though the compressed version of the string is only 129 characters long.
So in essence this answers my question.
Code: Select all
$var_12 = '
24m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj24
89jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc
2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j
2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd89
24jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289c
j28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j8
9j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd
492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j
2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj8248
9jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224
m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489
jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2
489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2
489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd892
4jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj
28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89
j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd49
2484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j248
9cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2
489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89f
j289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf248
9jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc
4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj
890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2
498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2
498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj
82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd49248
4224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489c
j2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc24
89jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj
289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf248
9jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489j
c4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489
fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924j
d2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj2
8cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j
24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd4
92484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2
489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj8248
9jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd49248422
4m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj24
89jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489
jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj2
89j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf248
9jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489j
c4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j248
9fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd892
4jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289c
j28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j
89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd249
8jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2
498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j2
4fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd4
92484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498
j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj8
2489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd4924
84224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j24
89cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj8248
9jc248912311455234522354234234234234324542352454525424477357536
735635245245245245245243563461';
$var_23 = gzcompress($var_12, 9);
// Cookie 4KB Limit = 4085 characters.
setcookie('user_theme3',$var_12,time()+2592000,'/');
setcookie('user_theme4',$var_23,time()+2592000,'/');
echo strlen($var_12).'<br /><br />';
echo strlen($var_23);