Je nach GET inhalt verschiedenen Cookie setzen.

  • Hi,
    Also ich möchte bei mir auf meiner Homepage je nachdem was für ein wert per GET übetragen wird einen Cookie setzen.


    Anhand dieses Cookies werden dann andere Inhalte als Normal geladen.


    Also zb. ein anderes Stylesheet, andere Texte und so etwas.


    Nun habe ich das hier an den Anfang meiner Seite eingefügt:


    PHP
    <?php
        if ( $_GET["site"] == "omsi" ) {
            setcookie("ST", "omsi", time()+3600);
        } else ( $_GET["site"] == "st" ) {
            setcookie("ST", "st", time()+3600);
        } elseif {
            setcookie("ST", "", time()-3600);
        }
     ?>


    Und habe die datei Hochgeladen und zack bringt er mir nurnoch ne Weiße seite.


    Hoffe ihr könnt mir weiterhelfen :)

  • PHP
    <span class="syntaxdefault"><br />if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_GET ISTGLEICH das hier</span><span class="syntaxkeyword">)<br />{<br /></span><span class="syntaxcomment">#dann hier dieses stelysheet einfügen<br /></span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">elseif </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_GET ISTGLEICH das hier</span><span class="syntaxkeyword">)<br />{<br /></span><span class="syntaxcomment">#dann diesen stylesheet einfügen<br /></span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> </span>


    cookie setzen an der stelle wäre vollkommen bescheuert, da manche keine cookie's im browser aktiviert haben und wenn du beim programmieren nicht aufpasst manch einer dann kein layout kriegt ;)


    wenn dann in einer $_SESSION['meine_session'] speichern ;)

  • Also wenn kein Cookie gesetzt ist oder ein Cookie mit einem Falschen wert wird immer das Standarddesign angezeigt.
    Außerdem wird der inhalt dann nach cookiewert bestimmt.
    somit erspare ich mir die links so zu gestalten:
    z.B. index.php?site=st&page=news&#n3
    Es soll halt eine HP werden die aber für Zwei Projekte dient.
    Und jenachdem welches Projekt aufgerufen wird bzw. welche Domain die Farbgestaltung und der Inhalt anders ist.


    Und das mit dem Leeren Cookie schau doch wenn einer index.php?site=blub eingibt wird ein Cookie geschrieben der aber sofort wieder gelöscht wird da er abgelaufen ist.


    Das ist dafür da wenn leute nähmlich wieder normal auf die Seite kommen und den "omsi" cookie haben der gelöscht wird damit der normale content geladen wird.


    Und mein Problem ist wenn ich das oben in die index einfüge und hochlade dann die seite aufrufe, er mir nur ne leere seite ausgibt..

  • Nein selbst wenn ich nur den Code oben einfüge ohne die Abfrage, gibt er mir nur eine Weiße seite aus.


    Und euch den Code geben würd sich schwierig erweisen..


    ich würde es implementieren in diese seite:


    <!-- m --><a class="postlink" href="http://www.seventransporte.de">http://www.seventransporte.de</a><!-- m -->



    Die Seite besteht aber aus includes und get abfragen.


    Daher wären das ein paar viele Dateien...

  • In deinem ersten Codeschnipsel hast du die Wörter "else" und "elseif" verwechselt. Das wäre ein Syntaxfehler. Für deine Skripts immer erstmal auf dem eigenen Rechner aus, lass dir dort alle Fehler ausgeben, und wenn du glaubst, es läuft alles, kannst du es hochladen.


    Für dein Problem würde sich auch folgender Lösungsansatz anbieten:

    PHP
    <span class="syntaxdefault"></span><span class="syntaxkeyword">if(isset(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'site'</span><span class="syntaxkeyword">])){<br /></span><span class="syntaxdefault">  setcookie</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"ST"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'site'</span><span class="syntaxkeyword">],</span><span class="syntaxdefault"> time</span><span class="syntaxkeyword">()-</span><span class="syntaxdefault">3600</span><span class="syntaxkeyword">);<br />}<br />else{<br />  </span><span class="syntaxdefault">setcookie</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"ST"</span><span class="syntaxkeyword">, </span><span class="syntaxstring">""</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">time</span><span class="syntaxkeyword">()-</span><span class="syntaxdefault">3600</span><span class="syntaxkeyword">);<br />}</span><span class="syntaxdefault"> </span>


    Hoffe, ich konnte helfen,
    webmaster3000

  • Das ist nur eine SUPER-GLOBAL wie $_POST und $_GET. Quasi ein array indem du Sachen speichern kannst, die aber nur bei der aktuellen Sitzung vorhanden sind.


    (Nach Browsertab schließen ist die Sitzung pfutsch; wie deine cookie's die halt nur paar minuten leben (oder so))


    Vorteil der SESSION:

    • manche leute haben cookie's deaktiviert


    PHP
    <span class="syntaxdefault"><br />session_start</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'dieses_stylesheet will der benutzer sehen'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'stylesheet'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault"> </span>


    PHP
    <span class="syntaxhtml"><br />...<br /><head><br /><span class="syntaxdefault"><?php<br /></span><span class="syntaxkeyword">if(</span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'meine session'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"modern"</span><span class="syntaxkeyword">)<br />{<br /></span><span class="syntaxcomment">#dann dieses stylesheet einfügen (link)<br /></span><span class="syntaxkeyword">}<br />else...<br />{<br /></span><span class="syntaxcomment">#...<br /></span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">?><br /></span></head><br />...<br /></span>


    Hast es verstanden? ;)


    gruß
    phip

  • PHP
    <span class="syntaxdefault"><br />  print $_SESSION </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'irgendwas'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">  print $_COOKIE  </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'irgendwieGenauDasSelbe'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault"> </span>


    Erst gucken, dann maulen..

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!