Weiterleitung von JS auf .php

  • Hallo,

    ich stehe vor einem Problem in meiner Plugin-Eigenentwicklung:
    Mein JS-Code soll bei erfolgreicher Eingabe eines Formulars eine PHP-Datei aufrufen.
    Diese PHP-Datei führt dann weitere Funktionen aus (sollte jedoch nicht mittels Ajax geladen werden, da dies in den normalen Nutzerfluss mit implementiert werden muss).

    Allerdings ist es meines Wissens nach ein ziemlicher Sicherheitsmangel wenn die PHP-Datei direkt ausführbar wäre (auf rewrites usw würde ich gerne verzichten).

    Wie kann ich nun die PHP-Datei im Useflow aufrufen?

    Zur Veranschaulichung:
    User gibt Daten in Formular ein, JS prüft einige Sachen und soll danach auf die php-Datei weiterleiten.

    Danke schonmal!

    einfach. modern. individuell.

    • 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

  • Vor dem gedanklichen Problem stehen viele Entwickler, die nicht genau wissen, wie sie Formulareingaben abgreifen sollen. *

    (((
    Wenn du eine "Datei" per JS aufrufen willst, aber nicht per AJAX - dann willst du einen Page-Refresh, also Seite neu laden oder zu anderer gehen?
    ))

    (*) Lösung:
    Ich empfehl dir, dich in den template_redirect Hook reinzuhängen und dort deine ganzen Funktionen auszuführen. PHP-Menschen wollen immer direkt eine PHP-Datei ansprechen, das ist in WP aber nicht nötig! Du registrierst deine Funktionalitäten bei template_redirect und leitest dann mit wp_safe_redirect zur gewünschten Seite weiter!

    Leidenschaftlicher WordPress-Entwickler aus Österreich.

  • Allerdings ist es meines Wissens nach ein ziemlicher Sicherheitsmangel wenn die PHP-Datei direkt ausführbar wäre!


    Inwiefern genau?

    ..dass WordPress generell direkte Anfragen auf PHP-Dateien blockiert.


    Poste einen Link zu dieser Blockade, damit man diese Vermutung ansehen kann.

    Deaktiviere alle sonstigen Plugins und ggf. manuelle Anpassungen in [FONT=Courier New].htaccess[/FONT], um Wechselwirkungen auszuschliessen.

    Für Prüfungen mit eigenem JS-Code in einem Formular verwendet man normalerweise einfach einen [FONT=Courier New]submit[/FONT] Handler (google) vor dem Absenden.

  • Ich habe es jetzt anderweitig gelöst - per AJAX wird eine Funktion in besagter PHP-Datei aufgerufen, diese prüft die übergebenen Parameter und führt Interaktionen durch. Danach wird einfach die URL zurückgegeben, welche dann durch JS aufgerufen wird.

    einfach. modern. individuell.

  • Jo, das is der übliche Weg.
    Warum wolltest du das ursprünglich nicht so machen?

    Leidenschaftlicher WordPress-Entwickler aus Österreich.

  • Jo, das is der übliche Weg.
    Warum wolltest du das ursprünglich nicht so machen?


    Ich wusste nicht das WP intelligent genug ist bei AJAX-Aufrufen innerhalb der PHP auf den Cache des Nutzers usw zugreifen zu können. So ist es noch besser! :)

    einfach. modern. individuell.

  • Cache des Nutzers??? Was meinst du genau?
    Und: Wenn du mit AJAX arbeitest und das richtig machst, stehen dir die meisten WordPress-Funktionen zur Verfügung!

    Leidenschaftlicher WordPress-Entwickler aus Österreich.

  • Naja, PHP kann den cache modifizieren oder eben den Nutzer einloggen, der per AJAX auf die php zugegriffen hat. Das war mir nicht klar.

    einfach. modern. individuell.

  • Was meinst du mit "Cache modifizieren"?
    Welchen Cache????

    Du kannst mit AJAX oder der REST-API ALLES!!! machen.
    Woher kommt der Gedanke, dass das net geht? Würd ich gern nachvollziehen können!

    Leidenschaftlicher WordPress-Entwickler aus Österreich.

  • Ich meinte den Browsercache des Website-Nutzers.
    Warum das nicht gehen könnte? Weil nicht der Browser direkt die .php-Datei aufruft, sondern die admin-ajax.php. Dass dadurch trotzdem der Browsercache modifiziert werden kann erschien mir schleierhaft.

    einfach. modern. individuell.

  • Kann dir nicht ganz folgen - wo modifiziert ein AJAX-Call den Browser-Cache?
    Ja, du kannst per AJAX-Cookies setzen. Das wars dann aber auch schon!
    Aber du kannst mit dem Callback im Browsercache was machen.
    Aber das machst du am Client/Browser.
    Schreibst also dafür eigenen JS-Code.
    Das hat alles nix mit Ajax zu tun!

    Oder steh ich am Schlauch?

    Leidenschaftlicher WordPress-Entwickler aus Österreich.

Jetzt mitmachen!

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