• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Vorschaltseite Cookie Redirect via PHP

philofdeath

Psycho

Registriert
15 Juli 2013
Beiträge
156
Ort
Bielefeld
Moin!
Ich habe eine Vorschaltseite, wo man zwischen zwei Seiten wählen kann.

Wenn man eine Seite anklickt speichert sich ein Cookie und man wird beim nächsten Besuch direkt auf die Unterseite verlinkt.

Ich habe das ganze so gelöst, dass ich mit Javascript ein Cookie speichere und dann mit PHP checke, ob ein Cookie gesetzt ist.
Das ganze habe ich dann in ein If-Statement gepackt, welches, wenn ein ein Cookie gespeichert ist, einen 301 Redirect ausführt.

[src=php]

if(isset($_COOKIE['seite_1'])){
header("Connection: close");
header("HTTP/1.1 301 Moved Permanently");
header ("Location: https://ngb.to/seite_1/");
}
elseif (isset($_COOKIE['seite_2'])) {
header("Connection: close");
header("HTTP/1.1 301 Moved Permanently");
header ("Location: https://ngb.to/seite_2/");
}

[/src]

Soweit so gut. Funktioniert auch alles.
Ich hätte gerne versucht alles mit PHP umzusetzen und auf das Javascript gänzlich verzichtet.

Gäbe es eine Möglichkeit das nur mit PHP zu lösen?
 

philofdeath

Psycho

Registriert
15 Juli 2013
Beiträge
156
Ort
Bielefeld
  • Thread Starter Thread Starter
  • #3
Und in wie fern beantwortet das meine Frage?
Wie speichere ich in deinem Beispiel einen Cookie mit PHP auf einem Klick?

--- [2019-11-12 09:26 CET] Automatisch zusammengeführter Beitrag ---

Um meine Frage nochmal zu verdeutlichen, falls es nicht richtig rüber kam.

Gibt es eine Möglichkeit, nur mit PHP, via Klick eine Funktion auszulösen?
 

alter_Bekannter

N.A.C.J.A.C.

Registriert
14 Juli 2013
Beiträge
4.823
Ort
Midgard
Ah, ohne redirect nicht möglich da Cookies im header gesetzt werden müssen. Also darfst du davor nichts ausgeben.

Also:
redirect (html reload 0 Sekunden)
cookie setzen
redirect (html reload 0 Sekunden)

Javascript hat die Einschränkung halt nicht da es den Cookie über Browserfunktionen setzen kann.
 
Zuletzt bearbeitet:

philofdeath

Psycho

Registriert
15 Juli 2013
Beiträge
156
Ort
Bielefeld
  • Thread Starter Thread Starter
  • #5
Mehr wollte ich gar nicht wissen.

Danke ;-)

Die Möglichkeit mit dem Redirect erscheint mir wenig elegant.
Ich denke, dann ist das mit dem Javascript-Cookie die bessere Alternative
 

alter_Bekannter

N.A.C.J.A.C.

Registriert
14 Juli 2013
Beiträge
4.823
Ort
Midgard
Tja, umsonst ist der Tod und der kostet Leben. Die Lösung mit Javascript braucht Javascript. Aka Fremdcode der an deinem System rumfummelt. Hab ich default überall aus.

Gibt schon Gründe warum ein PHP Fallback für Javascript Sachen empfohlen ist. Letztendlich deine Entscheidung.
 

philofdeath

Psycho

Registriert
15 Juli 2013
Beiträge
156
Ort
Bielefeld
  • Thread Starter Thread Starter
  • #7
Grundsätzlich hast du Recht und genau aus diesem Grund habe ich diesen Thread auch erstellt.
Aber ich muss immer den Aufwand/Nutzen-Faktor abwägen, da ich wirtschaftlich bleiben muss.
Und unter diesem Aspekt betrachtet, werde ich es so lassen, wie es ist.
 

Shodan

runs on biochips

Registriert
14 Juli 2013
Beiträge
661
Ort
Citadel Station
Gibt es eine Möglichkeit, nur mit PHP, via Klick eine Funktion auszulösen?
Ja aber nicht ohne ein Neuladen der Seite: du könntest einen Link setzen, der die Seite mit Get Parameter aufruft, oder ein "verstecktes Formular" mit Button für Post, und dann mit PHP den Cookie setzen, wenn der Parameter existiert.
Zwischen "Button / Link geklickt" und "Seite sichtbar, Cookie gesetzt" passiert aber ein Reload.

wenn du den in ein iframe packst läd nur das neu, aber dann hast du Frames drinne xD

Angenehme onClick Funktionalität ist ohne JavaScript kaum machbar.

Du könntest eine Checkbox auf der Auswahlseite haben: "[_] keep this selection" und damit einen Parameter an den Server übergeben um den Cookie zu setzen.
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.728
Ort
in der Zukunft
das cookie muss ja nur vor der Ausgabe geschrieben werden.

Das heißt du machst auf der ersten Seite ein Feld "Einstellungen speichern (Datenschutzerklärung)" - verlinkst dann bei "Datenschutzerklärung" gleich noch die Infos über die Speicherung des Cookies.
Die Links auf die Buttons machst du innerhalb eines <form> tags als Buttons. Dann solltest du beim Aufruf der Seite 1 oder 2 sowas wie
https://meinesseite/seite1.php?save=true (Geht statt über get natürlich auch über post) hinbekommen.

Am Anfang der Seite 1 und Seite 2 frägst du den Parameter "save" ab und hinterlegst das Cookie und gibst danach die Seite selber aus.
Beim laden der Vorschaltseite bleibt deine obige Abfrage
 

Dr. M.

Weltmaschinenfahrer

Registriert
30 Juli 2018
Beiträge
188
Nur so als allgemeiner Hinweis, ich denke für deinen Fall würde ein temporärer Redirect (Statuscode 302, 303 oder 307) besser passen als ein 301er. Bedenke, das Proxies, Suchmaschinen und Browser den 301er cachen dürfen und du damit angibst, dass die alte URL nicht mehr gültig ist und dauerhaft verschoben wurde. Da das bei dir aber Cookie-abhängig ist, ist das wohl eher nicht der Fall. Das kann dann mitunter zu recht schwer zu diagnostizierenden Problemen führen.
 

philofdeath

Psycho

Registriert
15 Juli 2013
Beiträge
156
Ort
Bielefeld
  • Thread Starter Thread Starter
  • #12
@drfuture:

Ahh! Das ist natürlich auch cool.
Werde ich morgen direkt mal ausprobieren, ob ich das schnell hin bekomme.

@Dr. M.:
Jap, das habe ich heute schon auf 302 geändert, weil ich mir genau das dachte.
Aber trotzdem danke, dass du mich nochmal hingewiesen hast :)
 

electric.larry

\''; DROP TABLE user; --
Teammitglied

Registriert
13 Dez. 2014
Beiträge
4.549
Ort
Raum 43
Was machst du, wenn jemand Cookies bei dir verbietet? Zwingen?

Ich hab eine ähnliche Anforderung. Eine Liste mit Inhalten verschiedener Typen. Bis jetzt konnte ein User alle Typen, für die er Zugriffsrechte hat, in einer Liste durchgewürfelt sehen. Es gibt zwar einen Filter, wo er manuell den Inhaltstyp wählen kann aber jetzt soll das so geändert werden, dass auf einer Landingpage gewählt wird, welcher Inhalt ihn interessiert und dann soll er nur noch den sehen. Will er den anderen Inhaltstyp, wechselt er zurück auf die Landingpage und wählt den anderen Typen. Ganz umstricken ist nicht möglich, weil einige Benutzergruppen weiterhin alle Inhalte "gleichzeitig" sehen können sollen und - um es noch komplizierter zu machen - manche Inhalte gleichzeitig mehrere Typen haben können.

Die Variante mit dem Cookie hab ich auch im Kopf gehabt, aber es turnt mich ab, dass dann ohne Cookies nichts mehr geht. Kenne zwar keine Statistik, aber ich glaube Zahl der Besucher mit Scriptblocker und ohne Cookies wäre vernachlässigbar; aber aus Prinzip lieber Lösung ohne Cookie.

Ich überlege, die Auswahl auf der Landingpage in die $_SESSION zu schreiben oder - ich arbeite mit Drupal - Private Tempstore zu verwenden. Ablauf wäre also, für jeden Inhaltstyp ein Link auf eine "Zwischenseite", anhand des Links wird auf dieser Seite (über PHP) die Auswahl in die $_SESSION geschrieben und dann passiert der Redirect - in meinem Fall - auf die Liste. Die Liste liest die Auswahl aus der $_SESSION und zeigt dann nur den jeweiligen Inhaltstyp.
 

dexter

Cloogshicer®
Teammitglied

Registriert
14 Juli 2013
Beiträge
5.306
aber ich glaube Zahl der Besucher mit Scriptblocker und ohne Cookies wäre vernachlässigbar; aber aus Prinzip lieber Lösung ohne Cookie.
Da das so ähnlich weiter oben schonmal kam:
Aber ich muss immer den Aufwand/Nutzen-Faktor abwägen, da ich wirtschaftlich bleiben muss.
Wenn man wirtschaftlich mit statistisch mixt kommen unter Umständen ganz komische Ergebnisse am Ende bei raus
Überzogenes Beispiel: Ich verkaufe hochwertigen Schmuck, 99% der Prolls haben ein jungfräuliches Browserprofil aber der eine, der wirklich kauft kaufen würde sitzt hinter einem gierigen Filter. Oops!? Das war die wirtschaftliche Variante.

Weniger überzogenes Beispiel: Amazon.com Wenn die cookiefreien Einkauf gewährleisten würden, dann wärs perfekt, so verkaufen die aber immer noch an alle, die komische Browser mit oder ohne deaktiviertem JS verwenden. Wenn man das mit Otto, Ebay oder was auch immer vergleicht: Geht offenbar wirtschaftlich.
Erschwerend dazu kommt halt noch, dass der ganze JS-Scheiss unwirtschaftlich ist, weil man Zeit und Geld auf ein Problem wirft, was man ohne JS gar nicht hat.
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.728
Ort
in der Zukunft
@electric.larry: warum geht ohne Cookie *nichts* mehr? Im Zweifel muss man dann bei jedem Besuch einen Klick mehr machen, oder musst du nach jedem anschauen der Liste auf die landing Page leiten?
 

philofdeath

Psycho

Registriert
15 Juli 2013
Beiträge
156
Ort
Bielefeld
  • Thread Starter Thread Starter
  • #16
@dexter:
Deine Beispiele finden bei mir aber nicht wirklich Anwendung, da ich auf der Website nichts verkaufe, lediglich Informationen bereitstelle, die ebenso abgerufen werden können, wenn Cookies oder JS nicht aktiviert sind.
Mit Cookie spart man sich einfach nur einen Klick. Deswegen muss ich hier den Aufwand/Nutzen-Faktor abwägen, da der Nutzen, anders als bei einer Verkaufswebsite (die JS/Cookie-Blocker ausschließt), nicht so hoch ist.

@drfuture:
Das habe ich mich auch gefragt
 
Oben