phpbar.de logo

Mailinglisten-Archive

[php] Cookies direkt per header() setzen

[php] Cookies direkt per header() setzen

Markus Wolff php_(at)_phpcenter.de
Fri, 04 May 2001 18:01:55 +0200


Hallo Liste,

da ich mit setcookie() immer mal wieder Probleme mit bestimmten
Browserversionen auf bestimmten Betriebssystemen habe (grmpf), wollte
ich einer der vielen Empfehlungen hierzu auf php.net folgen und mir eine
eigene Funktion bauen, die ein Cookie direkt per header() setzt.

So sieht die Funktion aus:

function mySetCookie($cookie_name, $cookie_value, $cookie_expire=3D0, $cook=
ie_path=3D"", $cookie_domain=3D"")
   {
    if(isset($cookie_name) && isset($cookie_value))
    {
     if($cookie_expire !=3D 0)
     {
      $gmt_string =3D gmstrftime("%a, %d-%b-%Y %H:%M:%S", $cookie_expire);
      $gmt_string =3D $gmt_string." GMT";
     }
     else
     {
      $gmt_string =3D "";
     }
     $header_string =3D "Set-Cookie: NAME=3D$cookie_name; value=3D$cookie_v=
alue; expires=3D$gmt_string; path=3D$cookie_path; domain=3D$cookie_domain;"=
;
     header($header_string);
     return($header_string);
    }
    else
    {
     return(FALSE);
    }
   }

Wer=B4s nicht erraten hat: $cookie_expire ist ein Timestamp, alle anderen
Werte sind Strings.

Das Wesentliche ist die Zeile mit der Definition von $header_string -
ich habe mich hier IMHO 200%ig an die Original-Cookiespezifikation von
Netscape gehalten (http://www.netscape.com/newsref/std/cookie_spec.html).

Ergebnis beim Aufruf dieser Funktion:

- Internet Explorer 5 setzt kein Cookie
- Opera 5.10 setzt kein Cookie
- Netscape 4.74 setzt ein Cookie, wobei alle Angaben bis auf Value
  korrekt sind - letzteres enth=E4lt keinen Wert

Da ich mir den $header_string als Returnwert an anderer Stelle ausgeben
lasse, wei=DF ich aber, da=DF Value auf jeden Fall =FCbergeben wurde.

Die Frage ist: Woran liegt=B4s? Was mache ich falsch? Mache ich was falsch?
Ich mache bestimmt was falsch. Oder machen die Browser was falsch? Fragen
=FCber Fragen...

Gru=DF,
 Markus
=20
--=20
*21st Media*    | Consulting, Konzeption, Produktion f=FCr die Bereiche:
Markus Wolff    | Internet, Intranet, eCommerce, Content Management,
Hamburg,Germany | Softwareentwicklung, 3D-Animation, Videostreaming
http://21st.de  | Tel. [+49](0)40/6887949-0, Fax: [+49](0)40/6887949-1



php::bar PHP Wiki   -   Listenarchive