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

Weiterleitung von JS auf .php

Dieses Thema im Forum "Allgemeines" wurde erstellt von fhwebdesign, 7. Juni 2021.

  1. fhwebdesign

    fhwebdesign Well-Known Member

    Registriert seit:
    2. Januar 2018
    Beiträge:
    152
    Zustimmungen:
    9
    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!
     
  2. arnego2

    arnego2 Well-Known Member

    Registriert seit:
    10. Januar 2021
    Beiträge:
    592
    Zustimmungen:
    63
  3. fhwebdesign

    fhwebdesign Well-Known Member

    Registriert seit:
    2. Januar 2018
    Beiträge:
    152
    Zustimmungen:
    9
  4. souri

    souri Well-Known Member

    Registriert seit:
    3. September 2013
    Beiträge:
    182
    Zustimmungen:
    12
    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!
     
  5. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.636
    Zustimmungen:
    1.778
    Inwiefern genau?
    Poste einen Link zu dieser Blockade, damit man diese Vermutung ansehen kann.

    Deaktiviere alle sonstigen Plugins und ggf. manuelle Anpassungen in .htaccess, um Wechselwirkungen auszuschliessen.

    Für Prüfungen mit eigenem JS-Code in einem Formular verwendet man normalerweise einfach einen submit Handler (google) vor dem Absenden.
     
  6. fhwebdesign

    fhwebdesign Well-Known Member

    Registriert seit:
    2. Januar 2018
    Beiträge:
    152
    Zustimmungen:
    9
    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.
     
    arnego2 gefällt das.
  7. souri

    souri Well-Known Member

    Registriert seit:
    3. September 2013
    Beiträge:
    182
    Zustimmungen:
    12
    Jo, das is der übliche Weg.
    Warum wolltest du das ursprünglich nicht so machen?
     
  8. fhwebdesign

    fhwebdesign Well-Known Member

    Registriert seit:
    2. Januar 2018
    Beiträge:
    152
    Zustimmungen:
    9
    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! :)
     
  9. souri

    souri Well-Known Member

    Registriert seit:
    3. September 2013
    Beiträge:
    182
    Zustimmungen:
    12
    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!
     
  10. fhwebdesign

    fhwebdesign Well-Known Member

    Registriert seit:
    2. Januar 2018
    Beiträge:
    152
    Zustimmungen:
    9
    Naja, PHP kann den cache modifizieren oder eben den Nutzer einloggen, der per AJAX auf die php zugegriffen hat. Das war mir nicht klar.
     
  11. souri

    souri Well-Known Member

    Registriert seit:
    3. September 2013
    Beiträge:
    182
    Zustimmungen:
    12
    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!
     
  12. fhwebdesign

    fhwebdesign Well-Known Member

    Registriert seit:
    2. Januar 2018
    Beiträge:
    152
    Zustimmungen:
    9
    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.
     
  13. souri

    souri Well-Known Member

    Registriert seit:
    3. September 2013
    Beiträge:
    182
    Zustimmungen:
    12
    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?
     
  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