Problem mit eigenen PHP Code

  • Moinsen,

    ich habe da ein kleines Problem.

    Ich habe per php 3 Seiten ohne großartiges CSS erstellt, um zu schauen ob meine Idee so funktioniert. Eine Seite (luregistrieren.php) ist ein Formular, wo verschiedene Felder ausgefüllt werden müssen. Eine weitere Seite (lureg.php) wird durch form action von der Seite registrieren.php aufgerufen. Dort werden die Daten überprüft und in die Datenbank geschrieben. Zu guter letzt gibt es eine Seite (liste.php) wo einige Daten aus der DB angezeigt werden.

    Nun wollte ich das ganze also in WP einbinden. Also habe ich mir die page.php aus wp-content/themes/zeenoblepro/ genommen und dort an entsprechender Stelle meinen php-code eingefügt. Dies funktioniert auch soweit, heißt, die Seite wird angezeigt und man kann auch alle Felder füllen/auswählen.

    Nun müsste ich ja beim absenden der Daten die Seite lureg.php aufrufen, wo die Daten überprüft werden, die Verbindung zur DB aufgebaut wird und dann entweder eine Fehlermeldung oder die Meldung erscheint, dass alles ohne Probleme verlaufen ist. Und genau hier bekomme ich folgende Fehlermeldung,

    [size=10]404 Error: Not found[/SIZE]

    The page you trying to reach does not exist, or has been moved. Please use the menus or the search box to find what you are looking for

    In der Adresszeile wird folgendes angezeigt,

    http://domain.de/eintragen/lureg.php

    Alle Seiten liegen in wp-content/themes/zeenoblepro/.


    In der luregistrieren.php steht folgendes,

    Es sieht also aus, als würde WP die Seite lureg.php in einem Unterverzeichnis von "eintragen" suchen? Oder woher kommt der Eintrag "eintragen" aus der Domain der 404-Seite?


    Der Permalink der lureg.php wird mir im Adminbereich wie folgt angezeigt,

    http://sub-domain.de/registriert/

    Und hier kommt das nächste Problem, die Seite wird aufgerufen, aber es kann keine Verbindung zur DB hergestellt werden. Ich habe für die Daten, welche über das Formular registriert werden eine seperate DB. Wie gesagt, die Funktion ohne WP funktioniert ohne Probleme.

    Ohne WB habe ich es mit einer seperaten config.php gemacht

    PHP
    //Datenbank
    $dbhost = "localhost";
    $dbname = "DBNAME";
    $dbuser = "DB_USER";
    $dbpass = "DB_PW";


    Diese dann wie folgt aufgerufen

    PHP
    include "./config.php";

    gab aber bei WP folgende Fehlermeldung,
    Es konnte keine Verbindung zur Datenbank hergestellt werden!

    Dann einmal anders versucht,

    PHP
    $datenbank = @mysql_connect(localhost,DB_USER,DB_PW) or die ("<p class=error>Es konnte keine Verbindung zur Datenbank hergestellt werden!</p>");
        $verbunden = @mysql_select_db($dbname) or die ("<p class=error>Die Datenbank wurde nicht gefunden oder ist fehlerhaft!</p>");

    gab aber auch die Fehlermeldung.

    Ich habe es auch ohne irgendeinen Eintrag versucht und meine Tabellen in die DB von WB einzufügen, leider auch keinen Erfolg. Die seperate DB ist genau da, wo auch die WP-DB ist.

    Wo also mache ich den Fehler? Und bitte berücksichtigt, ich bin ein php-Neuling der sich gerade in die Materie ranwagt und so langsam die Zusammenhänge versteht (oder auch mal nicht) Für einige hier ist es vielleicht banal, den Fehler zu finden, aber auch solche Leute sind nicht mit php im Kopf geboren :razz:

    Ich sag auf jeden Fall schonmal Danke!

    Sollte irgendwas an Infos fehlen, werde ich das gerne nachreichen.

    • 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

  • Wo also mache ich den Fehler? Und bitte berücksichtigt, ich bin ein php-Neuling der sich gerade in die Materie ranwagt


    Ja, wobei sich dann jeder zweite Neuling erst einmal an mysql vergreift, weil er dazu viel mehr Beispiele im Web findet, selbst bei php.net bei der de-Version wohl immer noch kein Hinweis erfolgt, dass mysql wohl ab PHP 5.5 als veraltet gilt und in späteren Versionen vermutlich entfernt werden soll. An letzteres glaube ich noch nicht so richtig, weil dann das Internet zusammenbrechen würde.

    Was so viel heißen soll, wenn Du mit MySQL beginnst, dann bitte schön mit mysqli oder PDO und nicht mit mysql. Bei WP würde ich für eine Datenbankabfrage aber auf die von WP zur Verfügung gestellten Funktionen setzen, denn die Verbindungsdaten hat ja WP bereits und die brauchst Du nicht unbedingt noch einmal angeben. Könnte/sollte in etwa so aussehen:

    PHP
    global $wpdb;
        $tabelle = $wpdb->prefix."name_tabelle";
        $etwas  = $wpdb->get_var("... FROM ".$tabelle."");

    Und viel mehr ist das dann nicht, falls alles richtig ist. Einlesen und sehr viel probieren müsstest Du Dich da allein, hier ist nur ein Anfang:

    http://codex.wordpress.org/Class_Reference/wpdb

    Für einige hier ist es vielleicht banal, den Fehler zu finden,


    Nein, ist es nur selten, habe schon bis zu 24 Stunden nach kleinen Fehlern gesucht.

    Was den ersten Teil Deiner Frage betrifft, probiere mal die Beispiele durch, dann werden die 404 weniger:

    http://www.coder-welten.com/wp-funktionen-…l-und-site_url/

    Wobei weniger nicht heißen soll, dass alle Probleme verschwinden, ein letztes ließ sich auch nur mit

    PHP
    <form action=\"http://".$_SERVER["HTTP_HOST"].esc_attr($_SERVER["REQUEST_URI"])."\" method=\"post\">

    lösen.

Jetzt mitmachen!

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