2012-03-29 3 views
0

Ich habe eine ASP.NET Login-Anwendung. Wenn die Anmeldung erfolgreich ist, erstellt meine Anwendung einen Cookie.Teil eines Cookie-Wertes abrufen und in Variable speichern

Wenn erstellt, mein Cookie ähnelt etwas wie:

Name: LoginCookie 

Value: guid=3eb8d82d-bc83-4ab9-b12b-880f84404a1d&login=true 

Meine Frage ist, mit PHP, wie kann ich das 'guid' Wert abrufen und speichern sie in einer Variable?

Vielen Dank für alle Hinweise.

+0

Warum nicht zwei separate Cookies ?! – ThiefMaster

Antwort

2

Verwenden parse_str()

parse_str($_COOKIE['LoginCookie'], $cookie); 

// now 'guid' and 'login' are available in the array $cookie: 
echo var_export($cookie, 1), PHP_EOL;  

echo $cookie['guid']; 
+0

Das funktioniert perfekt. Vielen Dank für deine Hilfe :-) – michaelmcgurk

1

konnte du geben einen Schuss mit regulären Ausdrücken:

$cookieValue = $_COOKIE['LoginCookie']; 
preg_match('#guid=([\-a-f0-9]+)#', $cookieValue, $matches); 
$guid = $matches[0]; 

Wenn das Format der guid immer so ist, könnte die regex aktualisiert werden präziser zu sein. Im Moment wird alles nach guid = up abgeglichen, bis es mit etwas übereinstimmt, das keine Zahl, ein Kleinbuchstabe (a-f) oder ein Bindestrich ist.

Die Verwendung von PHP parse_str ist auch eine ausgezeichnete Option, wenn der Cookie in Schlüssel1 = Wert1 & Schlüssel2 = Wert2 ... Format ist. Es verwendet URL-Parameter-Style-Strings und teilt sie in mehrere Schlüssel/Wert-Paare auf.

$cookieValue = $_COOKIE['LoginValue']; 
parse_str($cookieValue, $cookieParts); 
$guid = $cookieParts['guid']; 

Dieser Weg ist wahrscheinlich ein sauberer Weg, diese Werte aus dem "PHP" Weg heraus zu bekommen.

+0

Danke !! Sieht aus wie parse_str ist der beste Weg nach vorne. – michaelmcgurk