Hallo zusammen,
und zwar möchte ich gerne einen URL-Parameter in einer Session speichern.
z.B.www.shopdomain.de/?referrer=Musterseite
Wie kann ich den Parameter referrer in eine Session Variable speichern?
Der Wert aus der Session soll nach einem Kaufabschluss in eine neue Zwischentabelle gespeichert werden. Kann mir da jemand eine Step by Step Anleitung geben?
Viele Grüße
Matthias
Du kannst per Javascript einen Cookie setzen und ihn später mit PHP auslesen,wenn du es brauchst
Hallo thunder vanilla,
ok, danke für deinen Hinweis. Kannst du mir auch sagen welche Datei und Methoden ich mir anschauen muss, wenn ich in Oxid die Daten speichern möchte?
javascript kannst du einfach in irgendein Template einbauen, ich würde page.tpl nehmen.
Und die Daten auslesen wäre dann order->execute()
Ich habe versucht es über eine Session-Variable zu lösen.
Die Seite rufe ich dann über www.shopdomain.de/?ref=Mustermann auf.
Das Script habe ich direkt ins Template und zwar in die header.tpl gespeichert.
Wenn ich das erste mal den Shop mit dem Parameter aufrufe klappt auch alles wunderbar.
Doch schließe ich das Fenster und versuche es erneut mit dem Parameter auf die Seite zuzugreifen, dann wird die Session auf nachfolgenden Seiten nicht mehr gespeichert. Komischerweise funktioniert es dann wieder wenn ich im Oxid Backend unter Tools “VIEWS jetzt updaten” sage. Ich bin echt am verzeifeln, kann mir da jemand helfen? Anbei mein Code
[{php}]
//Parameter ref aus URL
$ref = oxConfig::getParameter('ref');
//Wenn Variable nicht vorhanden, dann anlegen
if( ! isset($_SESSION['ReferrerID']) ) {
oxSession::setVar('ReferrerID', $ref );
}
var_dump($_SESSION);
echo $_SESSION['ReferrerID'];
[{/php}]
Hinweis: Wenn man in der Config Datei von Oxid den Parameter $this->blForceSessionStart auf true setzt, dann scheint es mit der Speicherung der Session zu klappen.
Du musst PHP natürlich irgendwie mitteilen, dass es eine Session starten soll: http://php.net/manual/de/session.examples.basic.php