php und Cookies

maceis

maceis

Aktives Mitglied
Thread Starter
Dabei seit
24.09.2003
Beiträge
16.880
Reaktionspunkte
626
hallo zusammen,

Seit kurzem möchte ich bei bestimmten Webseiten Cookies einsetzen und habe nun eine kleines Problem.

Ich kann ein Cookie setzten und es wird beim nächsten Aufruf der selben Seite auch richtig erkannt und verarbeitet.

Allerdings ist es mir bisher nicht gelungen ein Cookie , das ich aus seite1 setzte auf seite2 auszulesen.

meine Abfrage in php sieht so aus:
PHP:
       <?      
        if (isset($_COOKIE["name_of_cookie"]) && $_COOKIE["name_of_cookie"]=="yes")
        {       
            mach was;
        }       
        else    
        {       
            mach was anderes;
        }       
        ?>

Ich nehme an, das nur die Syntax ein wenig anders sein muss, wenn das cookie von einer anderen Seite kommt, als die in der ich es abrage.
Habe aber leider mit googel jetzt nichts gefunden, was mir weiterhilft und wäre darum dankbar für einen Tip!
 
Hallo,

Edit:

nimm mal anstatt:

(isset($_COOKIE["name_of_cookie"])_&&_$_COOKIE["name_of_cookie"]=="yes"

das:
(isset($HTTP_COOKIE_VARS["name_of_cookie"])_&&_$HTTP_COOKIE_VARS["name_of_cookie"]=="yes"

G
1th_MACac
 
hallo 1th_MACac,

das funktioniert ja auch, solange das Cookie auf der selben Seite gesetzt wurde, auf der ich es auch wieder auslese.

wenn ich aber auf der seite "index.htm" ein Cookie setzte:
PHP:
<? setcookie("noc", "yes", time()+86400*30)?>
und auf der Seite "link.htm" das Cookie auslesen möchte:
PHP:
_        if (isset($_COOKIE["noc"]) && $_COOKIE["noc"]=="yes")
       ....
        ?>
Dann geht es eben nicht.

Ich frag mich schon, ob das übehaupt geht, oder ob ich irgendwie die Seite mit angeben muss, woher das cookie kommt, wenn ich von einer anderen Seite aus zugreifen möchte.

Muss wohl so sein, denn in der Cookie-Liste (zB von Safari) wird ja die webseite mit eingetragen.
Außerdem kann es ja zB zwei cookies "counter", "last_visit" o. ä. von zwei verschiedenen Webseiten geben.
 
hallo,

isset($HTTP_COOKIE_VARS["name_of_cookie"])_&&_$HTTP_COOKIE_VARS["name_of_cookie"]=="yes"

Danke für den Tip, aber das ändert leider auch nicht;

ich hab mal gegoogelt:
HTTP_COOKIE_VARS ist veraltet; jetzt benutzt man die sog. Superglobalen: $COOKIE["noc"]; "$noc" geht ohnehin nur mit "register_globals=On".
 
hallo nochmal.

folgende Info habe ich noch gefunden:
Wird ein Cookie gesetzt, werden sieben Eintträge in ein Cookie-File geschrieben ...
. Folgende Einträge werden gemacht:
- Domainnamen bzw. IP-Nummer der aufgerufenen Seite
- Cookieverfügbarkeit über gesamte Domain ja/nein
- Verzeichnis, in welchem das Cookie gesetzt wurde.
- Erlaubnis, Cookie via shttp-Verbindung (sicher) weiterzuübertragen ja/nein
- Ablaufsdatum des Cookies
- Cookie-Name
- Wert des Cookies (das was wirklich gespeichert werden soll)

Wenn ein Cookie diese Einträge bekommt oder bekommen kann, dann muß man Sie auch asuwerten können.

Die Fragen sind nun: Wie setzte ich die Verfügbarkeit übder die gesamte Domain ?
Wie greife ich auf ein Cookie zu mit den Eigenschaften "name" und "domainname"?
 
wer lesen kann ist klar im Vorteil... trifft da in meinem fall mal wieder zu!!!

werde mich morgen nochmal mit deinem Problem befassen..

bis dann

G
1th_MACac
 
so, jetzt hab ichs glaub ich:
hier die genaue Syntax von setcookie():
PHP:
int setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
Was das vorangestellte int bedeuten soll, weiss ich noch nicht.

Falls es jemanden interessiert, die Einzelheiten zum Einsatz stehen hier:
so funktioniert setcookie()

werd ich jetzt mal Testen, aber ich denke so gehts.

---------------------------------
Habs getestet; funktioniert einwandfrei :)
 
Zuletzt bearbeitet:
Servus,

da brauch nich mich ja schon nimmer damit beschäftigen und hab gleich noch was neues dazugelernt :)

G
1th_MACac
 
Zurück
Oben Unten