Q: setcookie()

Hallo,

Ich mache folgendes:

$r =3D new HttpRequest('/archive/index.html', HttpRequest::METH_POST);
$r->addPostFields(...);
$cookie=3D$r->send()->getHeader("Set-Cookie");

Um den Cookie dann per setcookie() im Browser setzen zu können splitte =

ich das Ganze auf in Cookie Name/Value und path. Das funktioniert auch
ganz gut. Nur bei Wert des cookies werden die Sonderzeichen " und =3D
nicht im "Klartext" gesetzt sondern mit %22 und %3D.
Folgendermaßen sollte es aussehen: "F8654324-EPR9gDESeVwHP32/sp77ogsTmZ=
o=3D"
In Wirklichkeit aber
%22F8654324-EPR9gDESeVwHP32/sp77ogsTmZo%3D%22

Wie kann ich denn das abstellen?

Ich holle mir den Wert folgendermaßen:
$cookie=3Dtrim($cookie);
$arr=3Dsplit(";",$ret);
$pos=3Dstrpos($arr[0],"=3D");
$name=3Dsubstr($arr[0],0,$pos);
$nameValue=3Dsubstr($arr[0],$pos+1);

Lass ich mir $nameValue im Browser mit echo ausgeben ist er noch
richtig. Aber wenn ich ihn dann mit setcookie($name,
$nameValue,0,$pathvalue);
setzen will hab ich diese %22 und %3D anstatt " und =3D.


Danke,
Reinhard



--
PM Mails an rpirpag <at> gmx dot at
Reinhard Pagitsch [ Mo, 23 Juli 2007 12:26 ] [ ID #1776386 ]

Re: Q: setcookie()

Reinhard Pagitsch schrieb:
> Hallo,
>
> Ich mache folgendes:
>
> $r = new HttpRequest('/archive/index.html', HttpRequest::METH_POST);
> $r->addPostFields(...);
> $cookie=$r->send()->getHeader("Set-Cookie");
>
> Um den Cookie dann per setcookie() im Browser setzen zu können splitte
> ich das Ganze auf in Cookie Name/Value und path. Das funktioniert auch
> ganz gut. Nur bei Wert des cookies werden die Sonderzeichen " und =
> nicht im "Klartext" gesetzt sondern mit %22 und %3D.
> Folgendermaßen sollte es aussehen: "F8654324-EPR9gDESeVwHP32/sp77ogsTmZo="
> In Wirklichkeit aber
> %22F8654324-EPR9gDESeVwHP32/sp77ogsTmZo%3D%22
>
> Wie kann ich denn das abstellen?
>
> Ich holle mir den Wert folgendermaßen:
> $cookie=trim($cookie);
> $arr=split(";",$ret);
> $pos=strpos($arr[0],"=");
> $name=substr($arr[0],0,$pos);
> $nameValue=substr($arr[0],$pos+1);
>
> Lass ich mir $nameValue im Browser mit echo ausgeben ist er noch
> richtig. Aber wenn ich ihn dann mit setcookie($name,
> $nameValue,0,$pathvalue);
> setzen will hab ich diese %22 und %3D anstatt " und =.

Suchst du rawurldecode()?

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Mo, 23 Juli 2007 12:31 ] [ ID #1776387 ]

Re: Q: setcookie()

Joerg Behrens wrote:
> Reinhard Pagitsch schrieb:
>> Hallo,
>>
>
> Suchst du rawurldecode()?

Nein, setrawcookie() hats gebracht, danke dass Du mich mit dem "raw"
darauf gestoßen hast. (Manchmal ist man irgendwie blind.)

Grüße,
Reinhard


--
PM Mails an rpirpag <at> gmx dot at
Reinhard Pagitsch [ Mo, 23 Juli 2007 12:47 ] [ ID #1776389 ]
PHP » de.comp.lang.php.misc » Q: setcookie()

Vorheriges Thema: _SERVER-Variable in MySQL-Datenbank speichern
Nächstes Thema: html2text