Eistee
Erfahrenes Mitglied
Hi,
meine Website nutzt ein relativ simples "Template-System".
Ich habe HTML-Dateien mit Platzhaltern ( {content} etc.) und PHP-Dateien, die den Code enthalten und in denen die Inhalte erzeugt werden.
Am Ende jeder PHP-Datei kommt ein Teil, der immer gleich aufgebaut ist.
Mittels str_replace() ersetze ich die Platzhalter durch die dynamischen Inhalte. Die HTML-Dateien lade ich per file_get_contents() in das PHP-Script.
So weit, so gut
Nun habe ich für den Admin-bereich meiner Seite ein kleines Script geschrieben, mit dem sich Bilder in die DB eintragen lassen. Klappt auch wunderbar.
Das Problem liegt nun aber im Template Teil. Ich bekomme nur eine Fehlermeldung ausgegeben, kann diese aber absolut nicht nachvollziehen.
Hier zunächst mal mein Code:
Der Fehler tritt nur in der if-Abfrage auf, also wenn das Formular abgeschickt wurde. Der else-teil funktioniert super.
Wenn ich das Script ausführe, erhalte ich folgende Meldung:
Zeile 46 ist diese hier:
Nach genau diesem prinzip (und auch mit der Template-datei message.html) funktioniert es in anderen teilen meiner Site aber bestens.
Einen Rechtsschreibfehler kann ich nicht entdecken.
Ich hab sogar schon, den ganzen teile darüber auskommentiert, um einen fehler in diesem Bereich zu vermeiden.
Hat alles nichts geholfen
Entweder hab ich nun Tomaten auf den Augen und übersehe etwas total offensichtliches oder der fehler liegt ganz woanders.
Bitte helft mir!
meine Website nutzt ein relativ simples "Template-System".
Ich habe HTML-Dateien mit Platzhaltern ( {content} etc.) und PHP-Dateien, die den Code enthalten und in denen die Inhalte erzeugt werden.
Am Ende jeder PHP-Datei kommt ein Teil, der immer gleich aufgebaut ist.
Mittels str_replace() ersetze ich die Platzhalter durch die dynamischen Inhalte. Die HTML-Dateien lade ich per file_get_contents() in das PHP-Script.
So weit, so gut
Nun habe ich für den Admin-bereich meiner Seite ein kleines Script geschrieben, mit dem sich Bilder in die DB eintragen lassen. Klappt auch wunderbar.
Das Problem liegt nun aber im Template Teil. Ich bekomme nur eine Fehlermeldung ausgegeben, kann diese aber absolut nicht nachvollziehen.
Hier zunächst mal mein Code:
PHP:
<?php
/* alkbrueder.de alkeys_insertpics.php last changed 02.06.05 by philipp@alkbrueder.de */
include("vars.inc.php");
if (isset($_POST["Submit"]))
{
$directory = '/blabla/'.$_POST["datum"];
chdir($directory);
$handle = opendir($directory);
$res = mysql_connect("localhost", "YYY", "XXX");
if (!$res)
{
echo "Kann z.Z. keine Verbindung zum Datenbankserver aufbauen.\n";
exit;
}
mysql_select_db("alkbrueder_de");
$i = 1;
while($file = readdir($handle))
{
$type = explode(".", $file);
if($type['1'] == "JPG" || $type['1'] == "SWF")
{
if(!is_dir($file))
{
$sqlab = 'INSERT INTO `gallery` (name, date, id2) VALUES ("'.$file.'", "'.$_POST['datum'].'", "'.$i.'")';
$res = mysql_query($sqlab) or die(mysql_error());
if($insert = $res)
{
$query_output .= 'Datei: <b>'.$file.'</b> eingefügt<br>';
}
else
{
$query_output .= 'Datei: '.$file.' nicht eingefügt<br>';
}
$i++;
}
}
}
mysql_close();
$alkeys_insertpics_output = str_replace("{output}", $query_output, file_get_contents("templates/message.html"));
}
else
{
$alkeys_insertpics_output = file_get_contents("templates/alkeys_insertpics.html");
}
$tpl = str_replace('{content}', $alkeys_insertpics_output, file_get_contents("templates/index.html"));
$tpl = str_replace('{rightbar}', "", $tpl);
$tpl = str_replace('{leftbar}', "", $tpl);
$tpl = str_replace('{welcome}', $welcome, $tpl);
$tpl = str_replace('{navi}', $tpl_navi, $tpl);
$tpl = str_replace('{paging}', "", $tpl);
print "$tpl";
?>
Der Fehler tritt nur in der if-Abfrage auf, also wenn das Formular abgeschickt wurde. Der else-teil funktioniert super.
Wenn ich das Script ausführe, erhalte ich folgende Meldung:
Warning: file_get_contents(templates/message.html): failed to open stream: No such file or directory in /blabla/alkeys_insertpics.php on line 46
Zeile 46 ist diese hier:
PHP:
$alkeys_insertpics_output = str_replace("{output}", $query_output, file_get_contents("templates/message.html"));
Nach genau diesem prinzip (und auch mit der Template-datei message.html) funktioniert es in anderen teilen meiner Site aber bestens.
Einen Rechtsschreibfehler kann ich nicht entdecken.
Ich hab sogar schon, den ganzen teile darüber auskommentiert, um einen fehler in diesem Bereich zu vermeiden.
Hat alles nichts geholfen
Entweder hab ich nun Tomaten auf den Augen und übersehe etwas total offensichtliches oder der fehler liegt ganz woanders.
Bitte helft mir!