Ergebnis 1 bis 6 von 6

Thema: Layer beim ersten Aufruf / Cookie

  1. #1
    Contao-Nutzer
    Registriert seit
    29.10.2010.
    Beiträge
    185

    Frage Layer beim ersten Aufruf / Cookie

    Tachchen,

    ich hab folgende Situation:

    Domain1 und Domain2 gehören einem Unternehmen (rein rechtlich aber 2 Unternehmen). Die eine Domain macht die Gebietsvertretung in 5 Bundesländern (Norden)
    und die Andere den Rest der Bundesländer (Süden). Aufgrund diverser Vereinbarungen dürfen gewisse Produkte nur auf der jeweiligen
    Webseite vertreten sein - Gebietsvertretung - und daher die 2 Webseiten.

    Nun muss ich beim ersten Aufruf ein Layer mit einer Landkarte zwecks Gebietsauswahl über das Layout schieben und möchte nach der Auswahl ein
    Cookie setzen, damit die Abfrage mit der Gebietsauswahl nicht erneut erscheint. Die Frage ist nun wie ich sinnvoll ein Cookie-Wert in Contao setze.

    Oder denke ich gerade zu kompliziert??? Eventuell ist auch die Lösung, dass ich nach der Auswahl einfach ein jQuery.ajax()-Request an eine von mir
    erstelle PHP-Datei sende und dann den Wert fürs Cookie hinzufüge?
    Ich möchte dann auch gleich ein Cookie für die 2. Domain setzen, damit ggf. ein Hinweis erscheint, falls man bei der falschen Firma gelandet ist.

    Danke für eure Hilfe!

  2. #2
    Contao-Nutzer
    Registriert seit
    29.10.2010.
    Beiträge
    185

    Standard

    Also ich hab jetzt eine PHP-Datei (location.php) im Templates-Verzeichnis mit folgendem Inhalt erstellt.

    PHP-Code:
    <?php
    session_start
    ();
    if(!isset(
    $_COOKIE[LOCATION]))
    {
        
    setcookie ("LOCATION""sued");
    }
    print_r($_COOKIE);
    ?>
    Beim nächsten Aufruf der Seite ist das Cookie bzw. die Variablen vorhanden.

    Rufe ich jetzt eine Seite innerhalb von Contao auf, welche einen PHP-Code mit der
    Ausgabe des Cookies enthält, ist die Variable bzw. das Array leer.

    Kann mir einer sagen warum das so ist?

  3. #3
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Standard

    Hallo Schockwelle,

    am einfachsten ist es, wenn Du das Contao-Framework benutzt. Contao bietet Dir Methoden um mit Cookies zu arbeiten.

    Du kannst einfach mit
    PHP-Code:
    \Input::setCookie("LOCATION""sued"); 
    den Wert setzen und mit
    PHP-Code:
    \Input::cookie("LOCATION"); 
    auslesen. Du könntest den Wert auch in der Session speichern, dazu gibt es die Session-Klasse.

    Wenn Du für Contao entwickelst, machst Du Dir das Leben sehr viel leichter, wenn Du das Framework verwendest. Glaub mir ich spreche da aus Erfahrung.

    Viele Grüße,
    eS_IT
    Viele Grüße,
    eS_IT
    --
    e@sy Solutions IT - Ihr Partner für professionelle Softwareentwicklung
    Website - Contao Codebook - Partnerprofil - GitHub

  4. #4
    Contao-Nutzer
    Registriert seit
    29.10.2010.
    Beiträge
    185

    Standard

    Hallo eS_IT,
    vielen Dank für deine Antwort, damit funktioniert es auch.

    Ich hab mein Problem inzwischen so halbwegs gelöst. Das größe Problem was ich habe ist, dass das Cookie irgendwie nach dem Beenden des Browser nicht gespeichert wird bzw. die Werte nicht mehr vorhanden sind.

    Im Moment sieht es wie folgt aus:

    - User kommt zum ersten mal auf die Seite und muss - sofern nord oder sued nicht im Cookie gespeichert ist - die Auswahl zwischen nord und süd treffen (Popup Dialog mit einer Landkarte).
    - Nach der Auswahl wird es nicht in der Session, sondern im Cookie gespeichert - ich setze dazu den entsprechenden Wert
    - Der User kann jetzt auf der Seite surfen ohne das die Auswahl noch einmal erscheint - Auswahl ist ja bereits im Cookie gespeichert

    Und jetzt kommt mein Problem:

    Wenn der Nutzer am nächsten Tag auf die Seite kommt, wird das Cookie abgefragt und weil der Wert ja am Vortag im Cookie speichert wurde, soll keine Auswahl kommen.
    Jetzt ist es allerdings so, dass nach schließen des Browsers der Wert verloren geht und das Cookie leer ist.

    Warum ist es aber leer?


    Habs gelöst...
    PHP-Code:
    setcookie("TestCookie"$valuetime()+3600);  /* verfällt in 1 Stunde */ 
    Ist das irgendein Problem für Contao das Cookie länger vorzuhalten?
    Geändert von Schockwelle (31.10.2013 um 20:59 Uhr)

  5. #5
    Contao-Nutzer
    Registriert seit
    29.10.2010.
    Beiträge
    185

    Standard

    Falls jemand mal ein Cookie bei mehrere Domains (Crossdomain) setzen muss, dann ist das Stichwort "JQuery jsonp".

  6. #6
    Contao-Nutzer
    Registriert seit
    08.11.2009.
    Beiträge
    191

    Standard

    Möchte kurz meine Anforderung und die Lösung schildern:

    www.domain.at wird geöffnet - Standort Auswahl ist sichtbar - je Standort ein Link zu einer eigenen Subdomain (standort.domain.at).
    Nach dem Aufruf eines Standorts soll beim nächsten Besuch der Startseite automatisch auf den Standort weitergeleitet werden.

    Auf den Standort Subdomains habe ich im fe_ Template vor dem <html> Tag folgenden Code um den Cookie zu setzen:

    PHP-Code:
    <?php
    setcookie
    ("standort""wien"time()+30*24*60*60"/""domain.at");
    ?>
    Wird ein anderer Standort geöffnet wird der Cookie überschrieben.

    Auf der Hauptdomain mit der Standort Auswahl habe ich im fe_ Template diese Abfrage um (wenn ein Cookie gesetzt ist) zum jeweiligen Standort weiterzuleiten.

    PHP-Code:
    <?php
    if(isset($_COOKIE['standort']) && $_COOKIE['standort']== "wien" ) {
    header('Location: https://wien.domain.at');
    exit; 
    }
    ?>
    <?php
    if(isset($_COOKIE['standort']) && $_COOKIE['standort']== "linz" ) {
    header('Location: https://linz.domain.at');
    exit; 
    }
    ?>
    <?php
    if(isset($_COOKIE['standort']) && $_COOKIE['standort']== "graz" ) {
    header('Location: https://graz.domain.at');
    exit; 
    }
    ?>

    Vielleicht kann das jemand gebrauchen.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •