eigener php code in wordpress wird nicht angezeigt

Zornbringer

Captain
Registriert
Mai 2011
Beiträge
3.882
hallo,

ich habe kürzlich angefangen mich in php einzuarbeiten. bin auch gut vorangekommen. ich habe hier eine index.php, die wie eine gewöhnliche html datei aufgebaut ist. sie hat auch php code in den üblichen tags. führe ich die datei auf meinem lokalen webserver aus funktioniert auch alles korrekt.

nun habe ich einen webserver auf dem eine wordpress seite liegt und wollte dort testweise meine php experimente aufspielen, um sie online zu haben. habe also meinen lokalen ordner mit meinen php dateien per ftp kopiert. ich kann auch drauf zugreifen und ein teil der html (eigentlich .php endung) seite wird auch angezeigt. allerdings hört die darstellung da auf, wo die <?php tag anfängt.

und nun bin ich am ende meines lateins. die dateien liegen auf dem webserver, ich öffne sie im browser, aber ab dem php tag ist ende mit der darstellung.

brauche ich ein wordpress plugin oder muss ich etwas in einer der konfigurations-dateien ändern? was ist da los? danke.

edit: zur veranschaulichung:


Code:
<!DOCTYPE html>
<html lang="de">

<head>
<title>LitDB - Literatur-Datenbank</title>
<link rel="stylesheet" type="text/css" href="litdb.css">
</head>

<body>

ab hier wird nichts mehr angezeigt.
 <?php
 
was kommt denn im PHP teil nachher? Da ist dein hier sichtbarer Code auch aus.
Das was du da machst, hat erstmal mit WordPress nichts zu tun, das liegt "daneben".
 
an dieser stelle verbinde ich zunächst mit einer datenbank:


Code:
 <?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "litdb";

$conn = new mysqli($servername, $username, $password, $dbname);

if($conn === false)
{
die("ERROR: Could not connect. " . mysqli_connect_error());
}
?>

(mir fällt auch gerade auf, dass ich ohnehin nicht verbinden kann, da ich noch zu localhost verweise. eine fehlermeldung sollte an dieser stelle trotzdem kommen?!)

dann gehts weiter mit html code und später folgt dann wieder ein php segment wo ich daten aus der datenbank abfrage und in listenfelder eintragen lasse.
 
Sehe ich das richtig, dass du im Template auf eine Datenbank zugreifen möchtest? Oder wo arbeitest du exakt?
Kann mir halt nicht vorstellen, dass WordPress an der Stelle eigene PHP-Abschnitte erlaubt.
 
kachiri schrieb:
Oder wo arbeitest du exakt?
also, ich habe hier lokal den order "litdb", der im webserver verzeichnis liegt. online liegt eine wordpress website. ich habe einfach meinen litdb ordner genommen und per ftp in den wordpress ordner kopiert. er liegt dann im selben ordner, wo auch "wp-admin" usw liegen.

ich habe dann über die adressleiste des browsers auf die url der website mit entsprechender endung des litdb ordners zugegriffen: "https://website.de/litdb" (ich weiß jetzt nicht mehr, ob ich auch index.php mit angehängt habe. ich habe es sicherlich versucht, aber mit dem gleichen resultat.)

es wird auch eine seite angezeigt, aber da wo der php code anfängt hört es auf.

habe das ganze jetzt lokal mit einer wordpress installation probiert, selbe prozedur wie oben, und es hat komischerweise geklappt. also, keine ahnung, was ich machen kann, um das zu lösen.
 
kachiri schrieb:
Kann mir halt nicht vorstellen, dass WordPress an der Stelle eigene PHP-Abschnitte erlaubt.
WordPress verbietet da gar nichts. du legst eine php datei(oder eine index.php in einem ordner) ab und rufst sie auf. es ist als ob sonst nichts existieren würde. ggf könnte eine htaccess regel den aufruf verhindern, aber das ist hier nicht der fall.

vermutlich hauts das PHP einfach auf mit der nicht vorhandenen DB - die kannst du am webhost aber anlegen und daten aus der lokalen DB ipmortieren - dann gehts mit dem PHP erst wieder weiter.

ich würde die PHP datei aber gleich in einen eigenen Ordner legen (der sollte halt nicht wie eine exisitierende WP-Subseite lauten) und da drin mit htaccess das anzeigen von Fehlern aktivieren:
https://stackoverflow.com/a/21429652

dann sieht man genauer worans im PHP hapert.
 
  • Gefällt mir
Reaktionen: Zornbringer
jo, danke. die datenbank, bzw. die eine tabelle, die in meiner lokalen datenbank liegt, habe ich schon importiert. ich kann bei dem webhost selbst keine datenbank anlegen, nur neue tabellen. keine ahnung wieso. hat vermutlich was mit dem provider (strato) oder dem webhosting paket zu tun.
 
mit entsprechenden prefixes der tabellen-namen grundsätzlich kein beinbruch. Webhost-Pakete würd ich immer mit 3xDB minimum rechnen. 1xCMS, 1xMatomo-Stats + 1x Dev basteln.
 
  • Gefällt mir
Reaktionen: Zornbringer
oh, jetzt wo du es sagst. erlaubt sind in diesem paket glaube 25 datenbanken von denen erst zwei belegt sind. im mysql admin hatte ich keine berechtigungen eine neue anzulegen. aber auf der strato seite im kundencenter geht es. ja, fummel halt erst seit ein paar tagen damit rum. ist alles noch neu.
 
In WordPress lässt sich unter wp-config.php im Hauptverzeichnis, mit den folgenden Dingen, die Logdatei anlegen, die man dann unter wp-content/debug.log, findet. Dort steht dann genau drin, was dein Problem ist.

PHP:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);

Zusatz:

In WordPress kannst du die wpdb Klasse verwenden, um dich mit Datenbanken zu verbinden. Das geht folgendermaßen:

PHP:
$db = new wpdb('username','password','database','localhost');

Danach brauchst du dich nur hier einlesen und kannst auf sichere Art und Weise, WordPress für die Verbindung und Arbeit mit deiner Datenbank verwenden.

Siehe hier: https://developer.wordpress.org/reference/classes/wpdb/
 
  • Gefällt mir
Reaktionen: Zornbringer
Zurück
Oben