2011-01-11 4 views
1

Gibt es einen Standard in PHP, um die Set-Cookie Anweisungen in einem HTTP Response-Header zu lesen, ohne es manuell zu analysieren?Lesen der Set-Cookie-Anweisungen in einem HTTP-Response-Header

Genauer gesagt, möchte ich den Wert des ASP.NET_SessionId Cookie von einem ASP.NET Web Service zurückgegeben, die ich konsumieren.


EDIT:

Ich raubend, die Web-Service-PHP native SoapClient Klasse. Ich kann die __getLastResponseHeaders() Methode verwenden, um die Gesamtheit der HTTP-Response-Header durch den Web Service zurück abzurufen:

HTTP/1.1 200 OK 
Cache-Control: private, max-age=0 
Content-Type: text/xml; charset=utf-8 
Server: Microsoft-IIS/7.5 
Set-Cookie: ASP.NET_SessionId=ku501l55o300ik3sa2gu3vzj; path=/; HttpOnly 
X-AspNet-Version: 2.0.50727 
X-Powered-By: ASP.NET 
Date: Tue, 11 Jan 2011 23:34:02 GMT 
Content-Length: 368 

Aber ich möchte extrahieren den Wert des ASP.NET_SessionID cookie:

ku501l55o300ik3sa2gu3vzj 

Und, Natürlich möchte ich das nicht manuell machen.

Antwort

1

Sie können die Cookies betrachten über Seife Client zurückgegeben, indem Sie:

var_dump ($ client -> _ Cookies);

Echo "Cookie ist". $ Client -> _ Cookies ["ASP.NET_SessionId"] [0];

+0

Das funktioniert gut. Aber ich kann nichts in der PHP-Dokumentation finden. Wo hast du das gefunden? – jaydoubleyou

2

Versuchen Sie folgendes:

$_COOKIE['ASP.NET_SessionId']; 

Oder diese:

$cookies = getCookies(); 
$sessionId = $cookies['ASP.NET_SessionId']; 

nicht sicher, ob der letzte Teil richtig funktioniert - wenn es nicht der Fall ist, könnten Sie versuchen:

print_r($cookies); 

um zu sehen, ob es überhaupt etwas zurückgibt.

+0

Okay, mal sehen. – pyon

+0

Nein, es funktioniert nicht. Ich denke, '$ _COOKIE' enthält nur Cookies, die vom Benutzer gelesen werden, nicht Cookies, die von einem Web-Service zurückgegeben werden. – pyon

+0

@Eduardo León Wann ist PHP * nicht * auf der Serverseite? – alex