1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Cookie Lebensdauer beschränken

Dieses Thema im Forum "Konfiguration" wurde erstellt von maettu, 31. Juli 2014.

  1. maettu

    maettu Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    64
    Zustimmungen:
    0
    Hallo zusammen ich habe eine Geschützte Seite erstellt mit Passwort.
    Nach Eingabe des Passworts wird ja ein Cookie gespeichert, so dass man das Passwort nicht immer eingeben muss.
    Nur mir sind 10 Tage Lebensdauer dieses Cookies etwas lange!
    Habe mal folgenden Code in mein functions.php kopiert:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Wie es als Lösungvorschlag auf dieser Seite geschrieben ist.

    Nur das ganze funktioniert nicht, es sind immer noch 10 Tage!
    Weiss jemand wie man das richtig auf eine vernünftige Dauer stellen kann?
     
  2. mensmaximus

    mensmaximus Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    8.857
    Zustimmungen:
    437
    Das wird so auch nicht funktionieren. Ich befürchte Du musst über den the_password_form filter an die Sache ran gehen um den Cookie beim setzen zeitlich zu beschränken. Der WP hook (ohne es geprüft zu haben) dürfte der falsche Zeitpunkt sein.
     
  3. maettu

    maettu Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    64
    Zustimmungen:
    0
    Ich glaube der Zeitpunkt ist nicht mal so wichtig, da das cookie einfach überschrieben wird, oder verstehe ich das falsch?

    Hab noch ein bisschen gesucht, und dabei gesehen das es einen "Filter" gibt für "post_password_expires", hier die Stelle im Source-Code. Im Moment verstehe ich aber nicht wie ich so einen apply_filters verwenden muss!
    Kann mir jemand ein Beispiel geben, wie ich das verwende?

    Muss das auch in meine functions.php, muss ich das irgendwie mit einer action verknüpfen? Oder wie geht das?
     
  4. mensmaximus

    mensmaximus Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    8.857
    Zustimmungen:
    437
    Ein Cookie muss gesetzt werden bevor irgendein Output erfolgt (no headers sent). Daher muss der Ablauf mit dem Setzen definiert werden. Ein Update des Cookies zeigt erst Wirkung beim nächsten Pageload.

    Den Filter post_password_expires kannte ich noch nicht. Es macht mich stutzig, dass im gesamten Core (3.9.1 durchsucht) kein add_filter('post_password_expires', 'irgendeine_core_funktion') existiert. Der Sinn erschließt sich mir nicht so richtig, denn apply_filters arbeitet alle Filter in der queue ab und diese Filter müssen vorab mit add_filter definiert worden sein. Zumindest habe ich es so vor langer Zeit verinnerlicht (was nicht heißen muss, dass es stimmt).

    Das Thema muss ich mal in Ruhe durchdenken.
     
  5. maettu

    maettu Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    64
    Zustimmungen:
    0
    Das wäre im Prinzip ja nicht mal so schlimm, da das Cookie im Prinzip eh nur für "Wieder-Besucher" ist, die dann das Passwort nicht jedesmal eingeben müssen. Für mich wäre eine Cookie-Lebensdauer von 2-3 Tagen gut

    Es sind wohl bei weitem nicht alle Filter dokumentiert bei Wordpress, hab immer mehr das Gefühl die Dokumentation ist fürchterlich unvollständig. Ich würde ja gerne auch in Englisch lesen ;) Viele Funktionen muss man irgendwie selber mit Filtern/Hooks nachrüsten, teilweise etwas mühsam, darum auch die riesen Plugin-Flut...

    Danke fürs durchdenken!
     
  6. mensmaximus

    mensmaximus Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    8.857
    Zustimmungen:
    437
    Gemeinsam geht alles besser.

    Das hat mich auf eine Idee gebracht die tatsächlich funktioniert. Ob das so gewollt ist steht auf einem anderen Blatt Papier.

    Folgender Code geht in die functions.php:

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Nach dem Aufruf einer passwortgeschützen Seite hatte mein wp-postpass_tralala Cookie eine Laufzeit von einem Tag.
     
    #6 mensmaximus, 1. August 2014
    Zuletzt bearbeitet: 1. August 2014
  7. maettu

    maettu Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    64
    Zustimmungen:
    0
    Danke dir das funktioniert, und ich glaube es ist gewollt!
    Der Kommentar im Source-Code empfiehlt ja einen Filter zu machen. Wie ja so schön oben steht:

    Nur mein Problem war, dass ich gedacht habe die Syntax wäre "apply_filters(...)", dir richtige Funktion ist aber add_filter wie du sie verwendet hast.
    Nun ist mir auch klar geworden do_action muss man wohl mit add_action ansprechen.

    Sehr praktisch diese Seite mit allen Hooks.
     
  8. Monika

    Monika Well-Known Member
    Ehrenmitglied

    Registriert seit:
    4. Juni 2005
    Beiträge:
    14.126
    Zustimmungen:
    2
    vielleicht hilft dir diese Unterscheidung

    http://codex.wordpress.org/Function_Reference/apply_filters

    http://codex.wordpress.org/Function_Reference/add_filter

    für zukünftige "Hooks" und "Hacks" :)
     
  9. maettu

    maettu Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    64
    Zustimmungen:
    0
    @Monika die Codex-Seiten habe ich mir schon angeschaut!
    Nur war mir die Beziehung zwischen diesen beiden Funktionen nicht klar. Der Verweis von apply_filters zu add_filter ist nicht sehr deutlich.
    Ich habe schon viele Codex-Seiten gelesen bei meinen Google-Suchen, sonst hätte ich auch den "post_password_expires" Filter nicht gefunden.
    Viele Probleme löst man bei Wordpress indem man irgendwelche Funktionen/Filters seiner functions.php hinzufügt, dabei aber nie lernt warum/weshalb. Aber jetzt ist mir das mit den Hooks auch klarer geworden.

    PS: Ich finde die Dokumentation von Wordpress teilweise nicht so gut, aber okay man lernt damit zu leben. Ich fange ja gar an mit Source-Code anschauen ;)
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden