• Hallo,

    ich habe vor von einer Seite aus einen Link einzubauen, welcher auf die Linkseite verweist. Davor möchte ich eine Art Zwischenseite einbauen, wo der ursprungslink mit übernommen wird und auch wieder angeklickt werden kann.

    Kann mir jemand helfen, wie ich da vorzugehen habe!?

    Danke

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Mal auf die Schnelle probiert, unter Localhost hat es funktioniert, im Web möchte ich es nicht testen.

    Du verlinkst von jeder beliebigen Seite mit welchen Links auch immer auf die /zwischenseite/ und übergibst dabei die eigentliche Zielseite mit dem Parameter 'zielseite'. Ein Beispiel wie der Link auf der abgehenden Seite, der auf die Zwischenseite verweist, aussehen sollte:

    HTML
    <a href="http://www.example.net/zwischenseite/?zielseite=www.example.com/irgend-etwas.html">Ein Link</a>

    Damit das funktioniert, müsstest Du noch ein kleines Plugin aktivieren, welches Du in der Zwischenseite mit Short-Code einfügen kannst.


    Und denke daran, jede Übergabe kann zu einer Schwachstelle werden, wenn nicht genügend abgesichert und gefiltert.

    Einmal editiert, zuletzt von Melewo (4. August 2013 um 15:01)

  • Edit: Habe mir gerade überlegt, ich würde es so nicht machen, denn andere sehen Deine GET-Parameter ebenfalls und könnten nun ihre eigenen Links auf Deiner Zwischenseite anbieten, in dem Sie diese als Wert mit dem QueryString übergeben. Beispiel:

    "http://localhost/wordpneu/zwisc…sige-seite.html"

    Somit genügt die Prüfung mit isset und empty und die Filterung mit preg_replace noch nicht, zusätzlich müsstest Du noch alle Deine zu übergebenen Zielseiten in ein Array aufnehmen und erst prüfen, ob sich die Zielseite im Array befindet.

  • So ist die Sache schon ein wenig sicherer, beim ersten QueryString wird ein Link zur Zielseite auf der Zwischenseite ausgegeben, beim zweiten nicht, da nicht im Array enthalten.

    "http://www.example.com/zwischenseite/…gend-etwas.html"
    "http://www.example.com/zwischenseite/…sige-seite.html"


    Dass mir hier localhost/wordp neu/ durchrutscht bei der letzten Antwort, war zumindest nicht beabsichtig. Habe wohl genug gespielt für heute.

  • Dafür hat Wordpress eigens ein Array mit Query-Variablen. Obendrauf kann man das mit md5 einfach maskieren.

    Im Prinzip das Array um einen Key ergänzen (bspw. $qvars[] = "zielseite";). Nach Überprüfung ob der Key in $querydata zur Verfügung steht, füllt man ihn mit den entsprechenden Daten. Verifizierung über $wp->query_vars.

    Und wenn man mag, kann man seine eigene Rewrite-Rule ergänzen, damit das auch "fancy" ausschaut (bspw. http://www.domain.de/seite/www.zielseite.de/.

    HF & GL

  • Ich lerne eigentlich ganz gern dazu. Einzig sich erst einmal durch verwendbare WP Funktionen, APIs und Methoden durchwurschteln, was mit bekannten PHP-Funktionen in Minuten erledigt ist, finde ich ab und an weniger berauschend. Nach der ersten Stunde sah es mal wieder bei Stack Overflow für den ersten Teil vielversprechend aus.

    Nach Überprüfung ob der Key in $querydata zur Verfügung steht, füllt man ihn mit den entsprechenden Daten. Verifizierung über $wp->query_vars.


    Beim mittleren Teil bin ich über einen Thread von Dir gestolpert, der zumindest nicht allzu prall mit hilfreichen Antworten von anderen Usern gefüllt zu sein scheint.

    http://forum.wpde.org/plugins-und-wi…write_rule.html

    Aber danke, sonst wüsste ich augenblicklich noch weniger. Nur, soweit ich das bisher verstanden habe (wobei ich nicht allzu viel richtig verstanden haben muss), geht es dann nicht mehr mit einer einfachen Lösung ab, sondern würde in einem mehr oder weniger ausgereiften Plugin münden.

  • Da mir so etwas wie was formateins schrieb ab und an keine Ruhe lässt, habe ich gestern noch bis des Nachts gegen 03.00 Uhr gesucht und getestet, bin aber erst heute fertig geworden. Getestet wurde die Übergabe von Links sowohl mit als auch ohne QueryString mit Links nach folgendem Muster, wobei beide Schreibweisen nun funktionieren:

    HTML
    <a href="http://www.example.net/zwischenseite/?zielurl=www.example.com/irgend-etwas.html">Link mit ?</a>
    <a href="http://www.example.net/zwischenseite/?zielurl=www.example.com/">Link mit ?</a>
    <a href="http://www.example.net/zwischenseite/www.example.com/irgend-etwas.html">Link ohne ?</a>
    <a href="http://www.example.net/zwischenseite/www.example.com/">Link ohne ?</a>

    Als problematisch erwies es sich für die Rewrite-Regeln, wenn im Wert ein / Schrägstrich enthalten ist. In diesen Fällen finde ich es bisher einfacher, den zu Wert zu splitten und auf zwei Parameter aufzuteilen.

    Auf eine Überprüfung mit in_array würde ich nicht verzichten, da sonst jeder beinahe jeden beliebigen Link übergeben kann. Nur dass jetzt beide Schreibweisen im Array notiert werden müssen, also mit und ohne abschließenden Slash, finde ich noch nicht berauschend. Werde da noch einmal gelegentlich schauen, ob sich das besser regeln lässt.

    Bei der Übergabe ohne sichtbaren QueryString werden die Werte bereits durch die Rewrite-Regeln auf erlaubte Zeichen gefiltert. Wie es sich bei der Übergabe mit ?QueryString verhält, habe ich noch nicht richtig getestet. Bin eigentlich dafür, dass alles rausfliegt, was da nicht hineingehört, somit lasse ich die RegEx mit preg_replace erst einmal drinne, zumindest bis ich es vielleicht irgendwann einmal besser wissen sollte.

    Mit index.php?name=zwischenseite bin ich mir ebenfalls nicht sicher, bei mir funktioniert es nur so, doch das könnte wohl von den Einstellungen abhängig sein, ob statt name ein anderer Parameter gewählt werden müsste.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!