stefan bartels: cookie-gesetzt-test nicht im selben script möglich?

hallo!

ich möchte keine session-id´s i.d. url, deshalb probiere ich ein cookie zu setzen. kann kein cookie gesetzt werden, "schalte" ich um auf "session.use_trans_sid".

ich möchte das cookie setzen und noch während das script geparsed wird wissen, ob es geklappt hat. meine cookie-prüfung gibt immmer erst auf einer neuangeforderten seite (im beispiel auf seite zwei.php) aus, ob ein cookie gesetzt werden konnte oder nicht. ich schätze, daß dies am HTTP-protokoll liegt, richtig?

<?php

session_start();
setcookie("cookie","set");

if($_COOKIE["cookie"] == "set"){
 // cookies allowed
 ini_set('session.use_trans_sid', 0);
 ini_set("session.use_cookies", 1);
 echo"<a href="http://foo.bar/misc/zwei.php">COOKIE ALLOWED: link zu zwei.php</a><BR>";
}else{
 // cookies not allowed
 ini_set('session.use_trans_sid', 1);
 echo"<a href="http://foo.bar/misc/zwei.php">NOT ALLOWED: link zu zwei.php</a><BR>";
}

?>

danke, stefan

  1. hi,

    ich möchte das cookie setzen und noch während das script geparsed wird wissen, ob es geklappt hat.

    ist nicht möglich.

    meine cookie-prüfung gibt immmer erst auf einer neuangeforderten seite (im beispiel auf seite zwei.php) aus, ob ein cookie gesetzt werden konnte oder nicht. ich schätze, daß dies am HTTP-protokoll liegt, richtig?

    ja. steht auch als anmerkung zu setcookie() im php-manual.

    gruss,
    wahsaga

    1. nö, php macht da nix "automatisch"...war auch meine hoffnung, aber http läßt das offenbar nicht zu. ich hab das jetzt so gelöst, daß sich die seite in jedem fall ein zweites mal selbst aufruft, und dann kann man ja sehen, on ein cookie gesetzt wurde oder nicht.

  2. Hi,

    ich möchte keine session-id´s i.d. url, deshalb probiere ich ein cookie zu setzen. kann kein cookie gesetzt werden, "schalte" ich um auf "session.use_trans_sid".

    Macht das der PHP-Session-Mechanismus nicht automatisch so?

    ich möchte das cookie setzen und noch während das script geparsed wird wissen,

    Das KANN nicht gehen:
    Das Cookie wird von Deinem Script an den Client (Browser) geschickt.

    Und erst beim nächsten vom Client gestarteten Request wird es eventuell wieder zum Server mitgeschickt.

    Während Dein erstes Script noch arbeitet, ist der Client nur Empfänger, er sendet keine Daten zwischendurch.

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.