Cookie und Sprungpunkt


(Andreas Kolisko) #1

Hi zusammen,

vorab, ich bin nur Endnutzer und hab echt keine Ahnung :slight_smile:

Meine Frage: Wie bekomme ich RW dazu einen Cookie zu setzen und dann wiederkehrende Besucher an einen Sprungpunkt (es gibt da ja was von BWD) und nicht an den Anfang der Seite beginnen zu lassen.

Also wenn ein Besucher zum 2ten mal kommt soll die Seite etwas runterscrollen bzw direkt weiter unten angezeigt werden.

Danke für eure Zeit und Hilfe
LG
Andreas


(Jannis from inStacks Software) #2

Sollte das nicht der Stack automatisch machen?


(Andreas Kolisko) #3

Welchen Stack meinst Du?


(Jannis from inStacks Software) #4

Naja, den stack von BWD…

Aber ich verstehe jetzt, was du möchtest. Ich denke nicht, dass es dafür eine automatische Lösung gibt.


(Andreas Kolisko) #5

Ich dachte anhand der Cookies stell ich fest ob derjenige schon mal da war und leite Ihn einfach um …
Hab ich mir in meinem nichtwissenden Hirn so zurechtgelegt …

Da gibts doch bestimmt was … vielleicht bei Obi :slight_smile:


(Michael M.) #6

Ist das wirklich ein Problem des Cookies? Läuft das nicht über den jeweiligen Browsercache?


(Andreas Kolisko) #7

Ich hab überhaupt keine Ahnung wie das zu realisieren ist …


(Oliver) #8

Hallo @partywerker,

Ich habe mal versucht eine Lösung für dein Problem zusammen zu schustern, muss aber sagen dass ich nicht sicher bin ob es funktioniert.

  1. Lade dir den kostenlosen Anchor Point Stack herunter (das Ding ist echt Gold wert):
    http://rwextras.com/anchorpoint/
    Den setzt du dann an die Stelle, wo der Besucher hingeleitet werden soll.

  2. Ab hier wird es tricky. Die Datei muss zunächst als PHP gespeichert werden. Dazu im Inspector den Dateinamen von *.html zu *.php ändern (sofern das nicht eh schon ne php-seite ist).

  3. Im Inspector gibt es eine Sektion für eigenen Code, sprich CSS, js usw. Da sollte es auch einen ‘Prefix’-teil geben. Der darin eingesetzte Code wird noch vor dem !DOCTYPE eingefügt, das ist sehr sehr wichtig! Es darf auch kein anderer Code davor geladen werden, also das folgende an erster Stelle in diesen Reiter einfügen:

    <?php if(isset($_COOKIE['visited'])){ $visited = $_COOKIE['visited']; if{ header("Location: http://deine-website.de$visited"); } } else{ setcookie("visited","#ankerpunkt"); } ?>

Bin absolut kein php-Guru, aber so rein theoretisch sollte das einen Cookie setzen, welcher den vorhin gesetzten Ankerpunkt als Wert inne hat. Wenn es den Cookie gibt, müsste der User zum Ankerpunkt weitergeleitet werden.
Füge nach Location deine URL ein, aber nur bis zum #
Für #ankerpunkt den Namen des Ankerpunktes vorhin einfügen, aber das Rautezeichen wieder drin lassen.
Dann hoffen dass es funktioniert.

Warum ich dabei unsicher bin?

  1. Habe gerade erst angefangen mich mit PHP eingängiger zu beschäftigen.
  2. sowohl der setcookie als auch die Header funktion müssen eigentlich als erste geladen werden und es dürfte nichts davor kommen. Ich hoffe einfach mal dass es wegen der if/Else Verschachtelung trotzdem läuft…

Ich sollte dazu erwähnen, dass der User nicht smooth per autoscroll o.ä. dahin geleitet wird => das ist ein redirect, also wird die Website an der Stelle geladen.

Das ganze könnte theoretisch auch mit JS auf die Beine gestellt werden, zumindest laut diversen Foren…

Falls jemand versierters im Umgang mit PHP dazu was ergänzen möchte, dann wäre ich froh über entsprechende Anmerkungen (gerade weil ich erst kürzlich damit angefangen habe).

Anbei: Wenn ich wüsste, um welchen bwd Stack es eigentlich geht, könnte ich dabei vllt eher ansetzen & helfen.

Hoffe jedenfalls dass es hilft…

Happy weaving,
~N


(Andreas Kolisko) #9

Zuerst einmal Danke für die Mühe, wenn ich das Ganze so einbaue bekomme ich folgenden Fehler.
Parse error: syntax error, unexpected ‘{’, expecting ‘(’ in *********************************index.php on line 63

die Seite um die es geht ist www.mitgarantie.de


(Oliver) #10

Ich werde das bei mir mal lokal ausprobieren, stay tuned :wink:

Auf der Website habe ich gerade keine ausschlaggebenden Fehler gefunden. Es wundert mich auch, dass dieser Fehler erst auf Zeile 63 auftritt. Das ist dann vermutlich eher ein Fehler in irgendeinem Stack…


(Andreas Kolisko) #11

Ich hab deinen Code auch mal an anderer Stelle eingefügt dann tritt der Fehler in Zeile 4 auf

Zur Info :slight_smile:


(Oliver) #12

jo danke, der code ist bereits gefixt und läuft jetzt, habe nur gerade noch mit einem kleinen problem mit den Umleitungen zu tun :wink:


(Oliver) #13

Ok, jetzt läuft alles ^^ Ist zwar eine Spur umständlich, geht aber leider nicht anders :smile_cat:

  1. Erzeuge einen Kopie deiner Startseite, welche im Unterordner start abgelegt wird (Name kann auch geändert werden)
  2. Wie schon zuvor muss in die Prefix-Sektion im Inspektor folgender Code eingefügt werden

<?php
if(isset($_COOKIE['visited'])){
    $visited = $_COOKIE['visited'];
    header("Location: http://www.deine-website.de/start/$visited");
}
else{
    setcookie("visited","#ankerpunkt");
}
?>

  1. Füge bei Location deine URL ein. Solltest du den Ordner aus Schritt 1 nicht start genannt haben, ändere den Namen im Code entsprechend
  2. An der Anweisung mit dem Ankerpunkt hat sich nichts geändert. Falls dein Ankerpunkt nicht ankerpunkt heißt, ändere die Bezeichnung dementsprechend im Code.
  3. Um die Inhalte deiner Startseite (index.php) und der Kopie (start/index.php) identisch zu halten, nutze am besten ein Partial.
  4. Vergiss nicht, in den Datenschutzbestimmungen auf die Nutzung von Cookies hinzuweisen :wink:

Abschließend, warum die Kopie der Index?
-> Ich habe den Fehler gemacht, dass der Code quasi immer wieder neu bei laden Seite zu eben dieser Seite weiterleitet -> damit ist eine Endlosschleife entstanden. Da die Kopie der Index, auf die nun verwiesen wird, diesen Code nicht enthält, ist alles ok.

Wenn du alles so machst wie beschrieben, dürfte es keine Probleme mehr geben ^^

Happy weaving,
~N


(Andreas Kolisko) #14

Hab ich eingefügt aber klappt noch nicht.
Muss ich das Duplikat Zur Homepage machen? Wenn Ja, hab ich auch schon Probiert, dann geht er zu www.mitgarantie.de/start/#ankerpunkt aber safari sagt dann

Ich kann Dir das Projekt auch gerne schicken oder wir tel. wenn Du Zeit, Geduld, Lust hast … :smile:
Das ganze ist auch nicht lebenswichtig, war nur eine Idee … Also bitte nicht Deine Zeit vergeuden …


(Oliver) #15

Jetzt wo ich einmal angefangen habe will ich es auch zu Ende bringen :wink:

Wäre sehr hilfreich, wenn du mir das Projekt schicken könntest, dann kann ich das lokal ausprobieren und dann wird das schon laufen ^^

Du hast den Code nicht eventuell auch in die Kopie der Seite eingefügt? Das würde dann nämlich wieder eine Endlosschleife erzeugen, was den Umleitungsfehler erklären würde…

Lade die .rw Datei am besten in eine Cloud hoch (Dropbox oder so) und lass mir den link per pm zukommen ^^


(Andreas Kolisko) #16

Dank Noridge und seiner unendlichen Geduld ist mein Problem mehr als gelöst.
Auch hier ganz offiziell noch mal

Vielen Dank