Cookies mit PHP

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    Cookies mit PHP

    So, ich muss mal wieder mit php nerven ;)
    Ich bastele immer noch an meiner Designauswahl für meine HP, und hab mir nun folgendes System "ertüftelt":
    Ich include in jede seite den gleichen html-head. Dort wird ausgelesen, was für ein design-cookie auf dem pc gespeichert ist, und jenachdem das etsprechende stylesheet "ge-echot", bei keinem cookie springt das standart design an. Das setzen der cookies mache ich so: klickt man auf einen designveränderungslink (was für ein wort...) wird die aktuelle seite (also z.b. .../index.php) zusammen mit einer _get-anweisung aufgerufen(.../index.php?Cookies_set=LightBlue). Nach dieser Anweisung wird vor der Sylesheet-Auswahl der entsprechende Cookie gesetzt. Am besten zeige ich das ganze mal:

    PHP-Quellcode

    1. <?php
    2. If ($_get['Cookies_set'] == "Patttern")
    3. {
    4. setcookie(JMB_design,"Pattern",time()+3600);
    5. }
    6. ElseIf ($_get['Cookies_set'] == "LightBlue")
    7. setcookie(JMB_design,"LightBlue",time()+3600);
    8. }
    9. if($_Cookie['JMB_design'] == "Pattern")
    10. {
    11. echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"formate.css\">";
    12. }
    13. elseif($_Cookie['JMB_design'] == "LightBlue")
    14. {
    15. echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"formateVAR2.css\">";
    16. }
    17. else
    18. {
    19. echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"formate.css\"> <!---Kein Cookie erkannt--->";
    20. }
    21. ?>

    (das ganze ist im head der seite)

    Beim Seitenaufruf erscheint jedoch nur eine leere, weisse seite. Das scheint am cookie-setz-teil zu liegen, kommentiere ich diesen aus, funktioniert alles was noch da ist. Dann wird übrigens im head auch die Meldung das kein cookie erkannt wurde ausgegeben. UNd tatsächlich: ein blick in den Cookie-MAnager verrät, das kein keks von meiner seite vorhanden ist.


    Warum funktioniert das nicht? Und hat einer eine Idee, wie man das Problem lösen kann?

    Mfg, jmb.96 :)
    "People assume that time is a strict progression of cause to effect, but actually, from a non-linear, non-subjective viewpoint, it's more like a big ball of wibbly wobbly, ...timey wimey ...stuff."
    Nächstes Mal vlt. die Referenz-Beschreibung besser lesen? ^^

    Quellcode

    1. setcookie(STRING, STRING, INTEGER);


    Ansonsten ist dein System ziemlich blöde wenn das GET gleich dem Cookie zuordnest, jedoch über eine IF-Abfrage, mache es doch einfach so

    PHP-Quellcode

    1. setcookie(JMB_design, $GET_['Cookies_set'], time()+3600);

    (Fehler bewusst übernommen)

    Und das Setzten der Styles würde ich über Switch Case anstatt If machen, oder eben gleich den Namen aus dem Cookie als Style laden.
    Hmm, ein typisches problem, das man die einfachste lösung nicht erkennt ^^
    Aber was du mit der Rferenz meinst raff ich nicht: dau hast es doch genauso gemacht wie ich...
    "People assume that time is a strict progression of cause to effect, but actually, from a non-linear, non-subjective viewpoint, it's more like a big ball of wibbly wobbly, ...timey wimey ...stuff."