Mailinglisten-Archive |
On Die, 09 Apr 2002, Jochen Metzger wrote: > Genau so machen wir das auch. Es gibt halt nur den kleinen Schönheitsfehlerm > daß obwohl das Cookie gesetzt ist, der Server das erst auf der nächsten > Seite > erfährt (wir also auf der Seite, wo wir das Cookies das erste Mal setzen) Ist doch vollkommen irrelevant, wann der Server dies erfaehrt. > und wir somit trotzdem die session_id als GET -Variable (Parameter) anfügen > müssen oder machen , weil wir > das mit header-redirect nett wollen (wg. Suchmaschinen). Ihr muesst auch anfuegen, wenn der Nutzer Cookies ablehnt. Wie macht Ihr das denn? Ich will mich um so'n Kram eigentlich nicht kuemmern. ;-) Was bei der PHPLIB die Funktion purl() war, ist bei meiner Session-Klasse die Funktion $ses->wurl() bzw. angepasst auf die nativen PHP4-Session-Funktionen eben ausserhalb der Klasse. Jegliche URL, die in der Anwendung existiert, wird mit dieser Funkton behandelt, also z.B. wurl($PHP_SELF). Je nach Bedarf wird die Session-ID als GET-Parameter angefuegt oder eben nicht. Natuerlich koennte man dies auch mit der Konstanten SID machen, aber dann muss man auf Parameter achten oder haette ein ueberfluessiges Fragezeichen in der URL stehen, oder man bedient sich eines Konstrukts wie $url . "?" . session_name() "=" session_id() - naja, ist mir innerhalb des Codes viel zu umstaendlich und fehlertraechtig. Falls es jemand braucht: /** * Add the session id to the GET parameter in an URL. * This function returns the given URL with inserted session id as * first parameter. * * This code is an extract of apolda web tool suite, (c) by Ralf Geschke, * licensed under GNU Lesser General Public Licence (LGPL). * A few modifications are made to use it with the native session functions, * and not as part of the s2lib session class. * * _(at)_param string $url * _(at)_return string $wurl */ function wurl($url) { if (SID == "") return $url; $session_name = session_name(); $session_id = session_id(); if (preg_match("/^(.*)\?(.*)/",$url,$ma)) { if (preg_match("/(.*?)&*" . $session_name . "=(.*?)(&.*|$)/",$ma[2], $ma2)) { $wurl = $ma[1] . "?" . $session_name ."=" . $session_id; if ($ma2[1]) $wurl .= "&" . $ma2[1]; $wurl .= $ma2[3]; } else { $wurl = $ma[1] . "?" . $session_name . "=" . $session_id . "&" . $ma[2]; } } else { $wurl = $url . "?" . $session_name . "=" . $session_id; } return $wurl; } Beste Gruesse, Ralf -- : www : http://www.bttr.org : mail: ralf_(at)_bttr.org : Eine Site rund um MySQL : http://www.bttr.org/mysql/ : Privacy now! My Public Key : http://www.bttr.org/geschke.asc
php::bar PHP Wiki - Listenarchive