• Hallo zusammen,

    ich habe eine ggf. etwas allgemeinere Frage. Hier eine Beschreibung meines Problems:

    Ich habe mir vor etlichen Jahren ein kleines Buchungssystem für eine Homepage bauen lassen. Dieses basiert auf HTML/Javascript/PHP und ist recht rudimentär, bildet aber im Gegensatz zu allen Tools und Plugins, die ich bisher so finden konnte, genau den Sonderfall ab, den ich benötige.

    Nun habe ich eine neue Homepage, ein neues Aufgabenfeld, benötige aber immer noch ein sehr ähnliches Buchungssystem. Da ich den Code vollständig verstehe, traue ich mir zu alle Anpassungen selbst vorzunehmen. Nun zu meinem genauen Problem:

    Ich habe dieses Tool in Form von einer HTML-Datei und einer PHP-Datei, welche von einem Bootstrap Formular aus der HTML-Datei aufgerufen wird. Jetzt möchte ich das Ganze in WordPress einbinden. Meine bisherigen Recherchen ergaben das Plug-In „Code Snippets“. Dort habe ich die HTML-Datei eingebunden. Jetzt hat mir Google aber ergeben, dass es keine Möglichkeit gibt ein Code Snippet mit dem PHP-Code aus der anderen Datei analog dazu aufzurufen:

    <form id="orderform" method="post" action="request.php">

    Hat jemand einen Tipp für mich? Wie kann ich den PHP Code ausführen, wenn das Formular genutzt wird? Wenn genauere Informationen notwendig sind, liefere ich die gerne, aber ich vermute, dass die Frage recht allgemein beantwortet werden kann.

    Viele Grüße

    Jasmin

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 5 Antworten – 1 bis 5 (von insgesamt 5)
  • Moderator Michi91

    (@michi91)

    Was du brauchst ist ein shortcode. Hier ist ein beispiel:

    function custom_shortcode_function() {
        ob_start(); // Output-Buffering starten
    
        if (isset($_POST['submit'])) {
            // Verarbeite hier die Formulardaten und zeige das Ergebnis an
            $input_data = sanitize_text_field($_POST['input_field']);
            $result = "Du hast eingegeben: " . $input_data;
            echo '<p>' . esc_html($result) . '</p>';
        }
    
        // Formular anzeigen
        ?>
        <form method="post" action="<?php echo esc_url($_SERVER['REQUEST_URI']); ?>">
            <label for="input_field">Eingabe:</label>
            <input type="text" name="input_field" id="input_field" required>
            <input type="submit" name="submit" value="Senden">
        </form>
        <?php
    
        return ob_get_clean(); // Buffer ausgeben und leeren
    }
    
    add_shortcode('custom_form_shortcode', 'custom_shortcode_function');
    Thread-Starter jasmins92

    (@jasmins92)

    Hallo Michi,

    vielen Dank für deine Antwort. Nachdem ich leider vier Tage flach lag, kam ich erst gestern wieder dazu weiter zu probieren. Es war zwar nicht ganz das, was mir an Info gefehlt hat, aber es hat mir trotzdem sehr geholfen, weil ich so den richtigen Weg gefunden habe 🙂 Ich habe jetzt den PHP-Code in einer eigenen Datei auf den Server gelegt, rufe die per Direkt-Link auf und habe meinen JavaScript Teil per Scripts n Styles Plugin zum Laufen bekommen. Vielen Dank für die schnelle Antwort!

    Thread-Starter jasmins92

    (@jasmins92)

    Ich habe doch noch ein Problem, ein vermutlich sehr einfaches, aber ich bekomme es aktuell nicht gelöst, da ich anscheinend nicht die richtige Formulierung beim Googlen finde.

    Ich habe jetzt ein Code Snippet, das ein HTML Formular aufruft, welches dann den PHP-Aufruf startet. Außerdem habe ich ein JavaScript Teil, welcher bei Scripts n Styles am Ende des Bodies eingebunden wird. Auch hier wird die PHP-Datei aufgerufen. Dieser Aufruf scheint aber Probleme zu machen, der Browser gibt folgendes zurück:

    „has been blocked by CORS policy: No ‚Access-Control-Allow-Origin‘ header is present on the requested resource.“

    Laut Google liegt es daran, dass eine andere Domain aufgerufen wird. Wird nicht, allerdings habe ich es bisher nur geschafft den Aufruf der PHP-Datei mit voller URL zu realisieren, sprich „https://www.meinedomain.de/request.php&#8220;

    Dass das nicht die richtige Art und Weise ist und ich eigentlich die Datei ins gleiche Verzeichnis legen und direkt aufrufen soll, weiß ich. Aber ich weiß nicht wohin, da die beiden Aufrufe in den jeweiligen Plug-Ins (Scripts n Styles und Code Snippets) liegen. Kann mir da jemand helfen?

    Viele Grüße

    Jasmin

    Thread-Starter jasmins92

    (@jasmins92)

    Ergänzung: Es ist wahrscheinlich auch möglich, den PHP-Code (der eigentlich nur eine Datenbankabfrage macht und eine E-Mail schickt) in Code Snippets zu implementieren, statt in einer eigenen PHP-Datei. Aber dann weiß ich leider nicht, wie ich das in den Aufruf rein bekomme.

    Das sind die beiden Aufrufe:

    <form id="orderform" method="post" action="https://www.meineurl.de/request.php">
    $.getJSON(
                  "request.php",
                    {
                        action: "select",
                        date: date,
                        players: players
                    },
                    function(json) {
    ...
    })
    Moderator Michi91

    (@michi91)

    Du könntest

    header('Access-Control-Allow-Origin: *');

    In deine request.php einfügen, da gibt’s keinen CORS Fehler mehr.

    • Diese Antwort wurde vor 2 Jahren, 2 Monaten von Michi91 geändert.
Ansicht von 5 Antworten – 1 bis 5 (von insgesamt 5)

Das Thema „Implementierung eines HTML/PHP basierten Buchungstools in WordPress“ ist für neue Antworten geschlossen.