PHP-Skript in statische Seite einfügen

  • Hallo,
    ich möchte im Voraus sagen, dass es zu diesem Thema zu viele Einträge gibt und ich stundenlang mir Beiträge gelesen habe, aber leider nicht wirklich weitergekommen bin.


    Mein Problem ist folgendes:
    Ichhabe für meine Wordpress-Seite einen Suchformular mit PHP erstellt und möchte diesen PHP-Skript in eine Seite einfügen.
    Mit PHP-Plugins wird meine Seite zerstört, deshalb brauche ich einen anderen Weg.
    Man kann den PHP-Code auf eine Seite hochladen und es durch include in die Seite einbinden(kann sein, dass ich es falsch verstanden habe).
    Auf jeden Fall will ich es gern mit include einbinden.

    Ich habe nur auf Wordpress-Ansicht zugriff und weiss nicht wo ich mein PHP-Code reinschreiben soll. Dann soll ich ein include-Shortcode erstellen, da habe ich ein vorgefertigtes benutzt, der leider nicht funktionierte. Könnt ihr mir bitte diese Variante etwas erläutern.


    Ich bin für jede Hilfe dankbar.

    • 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

  • Frage: warum oder weshalb sollen Plugins deine Seite zerstören?
    für Formular gibt es gute Plugins!
    eine PHP Code in eine Seite einbauen ist normal nicht vorgesehen, es gibt Plugins dies das ermöglichen, jedoch sollte man sowas nur im Ausnahmefall in betracht ziehen.
    Shortcodes sind normal Anweisungen in [ ] eingeschlossen, solch Shortcodes sind verfüfbar aufgrund diverse Plugins

    zb ein Fomurlaplugin ich nenne es mal "contact form 7" ermöglicht die Felder für gewünschtes Formular zusammenzustellen, und dann erfährt man eine Shortcode zb [contact-form 1 "Kontaktformular 1"] diese Shortcode kopiert man einfach in das Editorfenster (wo man normal ach Text und Bilder einschreibt) und statt des Shortcodes erscheint dann für den Besucher der Seite das gewünscht Formular.

    etwas anderes: um eigene PHP entwicklungen für Wordpress zu basteln, baut man sich eigene Plugins, wie Plugins richtig dann mit Wordpress zusammenarbeiten ist sehr gut im Codex von Wordpress http://www.wordpress.org beschrieben, und man definiert zb auch eigenen Shortcode um seine PHP Scritp (funktionen) somit verwendbar zu machen,

    somit würde ich dir empfehlen dich mal durch den Codex von wordpress zu lesen, dann weist du wie du entweder sowiso vorhanden Plugins und Funktion nutzen kannst oder etwas eigenen zu entwickeln, und wenn du dann diese Grundlagen hast, sind die Fragen wie man PHP Code includen könnte für dich auch klar, wobei dies auch mit Programmierkenntnisse schon verständlich wäre, wie man Code in bestehende Scripte einbindet usw..

    gruss Franz

    Wordpress weil es spass macht, besonders beim WordPress Meetup in Linz

  • Erstmals Vielen Dank für deine Antwort.
    Ich habe PHP Exec und PHP execution ausprobiert und bei beiden tritt folgende Fehler ein:
    In mein Theme stehen unten ein Paar Links wie Impressium usw.
    Aber auf der Suchseite(welches den gebastelten PHP-Skript enthält) verschwinden diese Links, es verschwindet quasi alles, was unterhalt des content-Bereiches liegt.
    Ein Plugin zu erstellen, wäre für mich jetzt sehr zeitaufwändig, die ich immoment wegen ein paar Prüfungen nicht habe. Deshalb suche ich nach einen einfacheren Weg.
    Ich habe gerade mein PHP-Skript in die page.php Datei durch meine Suchseite ersetzt um es zu testen, aber dann war der Fehler immernoch da, obwohl die Seite page.php eigentlich php lesen konnte oder?

    Über jeden Tipp freue ich mich:)

  • Die Sache ist im Prinzip relativ einfach, wenn auch nicht ganz Codex-konform: Du erstellst dir ein eigenes Seitentemplate (u.a. hier beschrieben) und fügst in den Content-Bereich dein PHP-Zeugs ein. Dann erstellst du eine statische Seite im Backend und weist ihr dein Template zu. Das wärs dann schon fast. Je nachdem wie ausufernd du da programmieren willst musst du natürlich noch verschiedene PHP-Dateien deines Themes anfassen: sei es um globale Variabeln zu definieren oder Funktionen zu laden. Die gehen bei einem Theme-Update natürlich flöten (und updaten solltest du schon aus Sicherheitsgründen)... Plugin ist also der bessere Weg, quick & dirty der beschriebene.

  • Der Link zu Seitentemplate ist exakt meine Vorgehensweise gewesen. Aber den gleichen Fehler hatte ich immer noch. Ich bin noch ein PHP Amateur und habe den Skript nicht selber erstellt, aber der Skript ist nicht was tiefergehendes. Ich tippe etwas in den Formular ein und es holt sich seine Ergebnisse als xml zurück, dann durchläuft es die xml datei und gibt das Ergebnis wieder auf der selben Seite aus. D.h. doch, dass ich nur eine Template-Seite bearbeiten muss oder?
    Ich habe mehrere Themes ausprobiert und auf dieser Seite ist das Theme immer kaputt gewesen.
    Kann ich noch etwas machen, damit ich es auf diese Art machen kann?
    Ein Plugin würde ich natürlich auf lange Sicht in Betracht ziehen.
    Danke für die Antwort nochmal.

  • laut deiner letzten Beschreibung, hat dann wahrscheinlich dein PHP Script einen Fehler, der nicht mit der Wordpress template Darstellung oder Funktionalität zusammenpasst.
    das könnten ganz simple Dinge sein wie nicht geschlossener DIV Container, oder sonstiger unvollständig oder konfliktierender HTML Code, das kann eine fehlerhafte Funktion sein, oder einfach ein falscher Ansatz, das es Plugins und eben den Codex gibt,

    Wordpress weil es spass macht, besonders beim WordPress Meetup in Linz

  • Jawohllll :)

    das lag genau an so etwas. Es wurde in dem Skript an ein paar stellen die exist-Methode verwendet. Deshalb wurde der restliche Templates-Teil gar nicht ausgeführt. Nun ist alles geklärt und es läuft mit dem PHP-exec Plugin optimal.

    Vielen Dank nochmal für die tollen Tipps

    Mit solidarischen Grüßen,
    Serior

  • Es tut mir Leid dafür, dass ich den Thread nochmal raushole. Aber ich hatte bezüglich des Problems noch eine Frage.
    Wie ich sagte, habe ich den exit Befehl rausgenommen. Ich hatte ja in dem Code ein mysql Verbindung aufgebaut.
    Was passiert dann mit dieser Verbindung? Wann endet Sie? Hat das rausnehmen des exit-Befehls noch andere Effekte auf mein Code?

    Danke im Voraus

  • Um da was Sinnvolles sagen zu können müsste man schon mehr wissen... Wie hast du es denn realisiert? Fragst du ne externe DB ab oder ne Tabelle in der WP-Datenbank? Ist letzteres der Fall wäre das kicken der Verbindung nach Scriptende keine so gute Idee... ;)

  • Es ist eine Externe Datenbank, von der ich eine xml Datei beziehe. Kicken kann ich ja nicht, weil sonst der PHP-Code die Seite zerstört. Wann schließt sich den die Verbindung, wenn ich exit nicht benutze?
    Kann die Externe Quelle mich als Angreifer annehmen, wenn ich lange die Verbindung offen lasse?

  • Verstehe ich das so richtig: Dein Script generiert eine Anfrage an eine externe DB, die liefert dann ein XML als Ergebnis, du nimmst das XML und zeigst es wieder an? Klingt ziemlich umständlich...

  • Ja, ich nehme aber die XML Datei, konvertiere es und gebe die dann aus. Da ich die Datei nur in XML zurück bekommen kann, kenne ich keinen anderen Weg als diesen.

  • Na wenn es so ist... Das schliessen der DB-Connection obliegt dann der "gegnerischen Seite", da du ja erst nach dem Erhalt der XML wissen kannst, dass die Abarbeitung deiner Abfrage tatsächlich durchgeführt wurde... Die Funktion auf der anderen Seite sollte also etwa so sein: nimm die Anfrage entgegen, verarbeite sie, schieb den Output in ne XML, schick sie dem Fragenden (oder leg sie ab, dass der Anfragende die holen kann) und schliesse die Connection...

  • Gerne. Aber bedenke: Ich vermute. Für mich begründet, weil ich es so machen würde. Was aber tatsächlich auf der Gegenseite passiert kann ich genausowenig wissen, wie ich nicht weiss was du da im Einzelnen mit deinem Script zauberst. Ich würde auf jeden Fall den "gegnerischen Admin" mal mit der Frage belästigen...

  • Jetzt bin ich wieder etwas durcheinander. Den gegnerischen Admin zu erreichen ist leider nicht möglich. Na egal. Ich hoffe ich beschäftige die DB von denen nicht sehr, ansonsten muss ich einen Weg finden die Verbindung abzubrechen ohne den Skript von Wordpress mitzubeenden. Kennst du einen alternativ Befehl zu exit vielleicht?

  • Das müsste ich nach den Tutorials eigentlich wissen:), habe aber anscheinend wegen mangelnde Erfahrung vergessen.
    Jetzt ist alles geklärt.
    Ich habe dich schon lange beschäftigt heute. Wünsche die noch eine angenehme Nacht und danke nochmal.

    MsGrüßen,
    serior

Jetzt mitmachen!

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