Ankündigung

Einklappen
Keine Ankündigung bisher.

Weiterleitung in WordPress durch header()

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Weiterleitung in WordPress durch header()

    Hallo zusammen,

    ich habe vor kurzem beschlossen mich mit PHP auseinander zu setzen und bin noch relativ unerfahren, was die Sprache bzw. Semantik angeht. Wäre deshalb für jede Hilfe dankbar!

    Bin momentan dabei mir eine Webseite in WordPress zusammen zu basteln, wo ich ein eigenes Registrierungsformular erstellt habe. Diese Seite soll, die von den Nutzern eingegebenen Daten in eine Datenbank speichern und die Nutzer anschließend zur Startseite (oder auf die selbe Seite) weiterleiten nachdem die Registrierung erfolgreich war.

    Die Registrierung an sich funktioniert super, mit der Weiterleitung komme ich jedoch nicht zu Recht. Habe mir mehrere Tutorials und Beispiel-Codes angesehen und mir ist aufgefallen, dass häufig die Funktion header() verwendet wird, welches ganz oben im Skript stehen sollte(?). Mein Problem liegt aber darin, dass WordPress gewisse Limitationen setzt, was die Weiterleitungen und Seiten angeht (kommt mir zumindest so vor). Deshalb habe ich den kompletten Quellcode (inkl. CSS und HTML) in einer PHP-Datei. So ist er ungefähr aufgebaut (gekürzt auf die wichtigeren Stellen):

    HTML-Code:
    HTML-Code:
      <form class="form" action="" method="POST">   ... ... Inputfelder ... ...   <input type="submit" name="submit" value="Absenden">   </form>
    PHP-Code:
    PHP-Code:
    <?php  if (isset($_POST['submit'])) {   $finished false; ... ... ... Datenverarbeitung ... ... ...  header('Location: https://meineseite.de/index.php'); exit();    ?>
    Ich würde ja eigentlich gerne eine neue PHP-Datei erstellen und das action-Attribut dementsprechend aktualisieren. So wie es scheint ist dies in WordPress aber nicht möglich. Gibt es da dennoch eine Möglichkeit die Weiterleitung durchzuführen? Ich kann mir nämlich nicht vorstellen, dass eine einfache Verlinkung so schwer sein kann. Oder unterschätze ich da was?

    Grüße,
    cico



  • #2
    Wordpress ist halt eine eigenwillige Software, die auch eine eigene htaccess hat um Seiten und Links umzubiegen.
    Wende dich am besten an ein Wordpress Forum für dein Anliegen, da dies mit PHP nichts zu tun hat.

    Die Dokumentation dazu hast du gelesen?

    Kommentar


    • #3
      Zitat von protestix Beitrag anzeigen
      Wordpress ist halt eine eigenwillige Software, die auch eine eigene htaccess hat um Seiten und Links umzubiegen.
      Wende dich am besten an ein Wordpress Forum für dein Anliegen, da dies mit PHP nichts zu tun hat.

      Die Dokumentation dazu hast du gelesen?
      Die haben mir nicht wirklich geholfen bzw. ich wusste auch nicht genau, wonach ich zu suchen habe, da mein Problem ja schon relativ spezifisch ist. Habe das Problem nun mit JS lösen können, will mich aber dennoch nicht geschlagen geben. Gibt es eigentlich nur die Methode header() um eine Weiterleitung zu ermöglichen?

      So sieht mein PHP-Code aktuell aus und sie funktioniert genau so, wie ich es mir vorgestellt habe.
      PHP-Code:
      <?php    if (isset($_POST['submit'])) {     ... ...  Datenverarbeitung 
      ... ...   ?> <script>window.location.replace("https://meineseite.de");</script> <?php ?>
      GIbt es da eine äquivalente Methode/Möglichkeit in PHP?

      Kommentar


      • #4
        Ob es bei Wordpress dazu eine Methode gibt, musst du die Wordpress-Leute fragen. Das hier ist ein PHP-Forum und Weiterleitungen werden in PHP nun mal per HTTP-Header gemacht und das funktioniert auch (mit PHP). Wie das bei Wordpress ist, wie gesagt, andere Baustelle.

        Edit: Ich hab übrigens mal 5 Sekunden gegoogelt und bin auf folgende Wordpress-Funktion gestoßen:

        https://developer.wordpress.org/refe...s/wp_redirect/

        Hast du die schon ausprobiert? Hast du überhaupt schon selber gegoogelt oder die Wordpress-Doku gelesen?

        Kommentar


        • #5
          Zitat von hellbringer Beitrag anzeigen
          Ob es bei Wordpress dazu eine Methode gibt, musst du die Wordpress-Leute fragen. Das hier ist ein PHP-Forum und Weiterleitungen werden in PHP nun mal per HTTP-Header gemacht und das funktioniert auch (mit PHP). Wie das bei Wordpress ist, wie gesagt, andere Baustelle.

          Edit: Ich hab übrigens mal 5 Sekunden gegoogelt und bin auf folgende Wordpress-Funktion gestoßen:

          https://developer.wordpress.org/refe...s/wp_redirect/

          Hast du die schon ausprobiert? Hast du überhaupt schon selber gegoogelt oder die Wordpress-Doku gelesen?
          Jap, diese Methode habe ich auch schon probiert und mir die genaue Dokumentation dafür durchgelesen, hat aber auch nicht funktioniert.
          Na ja, vielen Dank trotzdem für die Antwort.

          Kommentar


          • #6
            "nicht funktioniert" klingt nach kurz ausprobiert und sofort aufgegeben. Warum hat sie nicht funktioniert? Bist du dem auf dem Grund gegangen?

            Kommentar


            • #7
              Zitat von hellbringer Beitrag anzeigen
              "nicht funktioniert" klingt nach kurz ausprobiert und sofort aufgegeben. Warum hat sie nicht funktioniert? Bist du dem auf dem Grund gegangen?
              Na ja, nachdem die Daten in die DB eingetragen werden tut sich in der URL-Leiste des Browsers nichts mehr. Warum sie nicht funktioniert kann ich mir auch nicht erklären. Habe auch versucht diese Methode in einem if-Block zu packen, damit sie erst ausgeführt wird, wenn die Abarbeitung der Daten zu Ende ist, was aber auch nicht hilfreich war, Ich vermute mal, dass es daran liegt, dass der header ganz oben in meinem Skript mit get_header() bereits aufgerufen wird. Bin mir aber nicht sicher ob es daran liegt. Bin eben noch ein Noob

              Kommentar


              • #8
                Zitat von cico Beitrag anzeigen
                Na ja, nachdem die Daten in die DB eingetragen werden tut sich in der URL-Leiste des Browsers nichts mehr. Warum sie nicht funktioniert kann ich mir auch nicht erklären.
                Naja, dann schaut man halt nach, was passiert. Wird der richtige HTTP-Header geschickt? Gibt es Fehlermeldungen im Error-Log? wp_redirect() hat einen Rückgabewert, hast du dir den angeschaut?

                Zitat von cico Beitrag anzeigen
                Habe auch versucht diese Methode in einem if-Block zu packen, damit sie erst ausgeführt wird, wenn die Abarbeitung der Daten zu Ende ist, was aber auch nicht hilfreich war, Ich vermute mal, dass es daran liegt, dass der header ganz oben in meinem Skript mit get_header() bereits aufgerufen wird. Bin mir aber nicht sicher ob es daran liegt. Bin eben noch ein Noob
                Und als Noob fängt man gleich mit Wordpress an, statt sich erstmal mit PHP vertraut zu machen?

                Kommentar


                • #9
                  Zitat von cico Beitrag anzeigen
                  Hallo zusammen,

                  ich habe vor kurzem beschlossen mich mit PHP auseinander zu setzen und bin noch relativ unerfahren, was die Sprache bzw. Semantik angeht. Wäre deshalb für jede Hilfe dankbar!

                  Bin momentan dabei mir eine Webseite in WordPress zusammen zu basteln, wo ich ein eigenes Registrierungsformular erstellt habe. Diese Seite soll, die von den Nutzern eingegebenen Daten in eine Datenbank speichern und die Nutzer anschließend zur Startseite (oder auf die selbe Seite) weiterleiten nachdem die Registrierung erfolgreich war.

                  Die Registrierung an sich funktioniert super, mit der Weiterleitung komme ich jedoch nicht zu Recht. Habe mir mehrere Tutorials und Beispiel-Codes angesehen und mir ist aufgefallen, dass häufig die Funktion header() verwendet wird, welches ganz oben im Skript stehen sollte(?). Mein Problem liegt aber darin, dass WordPress gewisse Limitationen setzt, was die Weiterleitungen und Seiten angeht (kommt mir zumindest so vor). Deshalb habe ich den kompletten Quellcode (inkl. CSS und HTML) in einer PHP-Datei. So ist er ungefähr aufgebaut (gekürzt auf die wichtigeren Stellen):

                  HTML-Code:
                  HTML-Code:
                   <form class="form" action="" method="POST"> ... ... Inputfelder ... ... <input type="submit" name="submit" value="Absenden"> </form>
                  PHP-Code:
                  PHP-Code:
                  <?php if (isset($_POST['submit'])) { $finished false; ... ... ... Datenverarbeitung ... ... ... header('Location: https://meineseite.de/index.php'); exit(); ?>
                  Ich würde ja eigentlich gerne eine neue PHP-Datei erstellen und das action-Attribut dementsprechend aktualisieren. So wie es scheint ist dies in WordPress aber nicht möglich. Gibt es da dennoch eine Möglichkeit die Weiterleitung durchzuführen? Ich kann mir nämlich nicht vorstellen, dass eine einfache Verlinkung so schwer sein kann. Oder unterschätze ich da was?

                  Grüße,
                  cico

                  wordpress = basteln, da hast Du schon mal Recht.
                  wordpress = CMS, heißt also, nimm es wie es ist und erweitere es mit Plugins oder erstelle selbst Plugins
                  alle andere funktioniert nur bis zum nächsten Update

                  wordpress hat gefühlt 1000% von dem Quelltext, den Du wirklich brauchst
                  erstelle Dir eine eigene Site in PHP, wenn gewünscht auch mit AJAX
                  dauert etwas länger, aber am Ende weißt Du, was Du gemacht hat und wie es funktioniert, Du kannst es jederzeit anpassen ohne auf die Vorgaben des Systems Rücksicht nehmen zu müssen und Du hast nur 5% des Quellcodes (wenn überhaupt)

                  Kommentar


                  • #10
                    Zitat von psygonis Beitrag anzeigen
                    wordpress = CMS, heißt also, nimm es wie es ist und erweitere es mit Plugins oder erstelle selbst Plugins
                    alle andere funktioniert nur bis zum nächsten Update
                    Der Plugin Tipp hilft mir schon enorm weiter. Danke! Habe davor versucht das Ganze als Template zu erstellen und daran lag es wahrscheinlich auch. Ich werde es mal mit einem Plugin ausprobieren.

                    Zitat von psygonis Beitrag anzeigen
                    erstelle Dir eine eigene Site in PHP
                    Daran dachte ich Anfangs auch, möchte jedoch einen funktionsfähigen Blog erstellen und da ist Wordpress sehr vorteilhaft, was Content-Management und Benutzerverwaltung angeht.


                    Edit:
                    Problem gelöst! Mit dem Plugin hat es tatsächlich geklappt. Musste das action-Attribut doch einfach nur ergänzen. Weiß zwar immer noch nicht, wieso es vorher nicht geklappt hat, ist mir jetzt aber in diesem Kontext erst mal egal. Werde mich dann in nem WP-Forum schlau machen.

                    Danke euch!
                    HTML-Code:
                        <form class="form" action="https://meineseite.de" method="POST">   ... ... Inputfelder ... ...   <input type="submit" name="submit" value="Absenden">   </form>

                    Kommentar

                    Lädt...
                    X