Mahlzeit,
ich komme bei meinem Gästebuch-Skript nicht weiter, weil mir stetig die Warnung "file() [function.file]: Filename cannot be empty in C:\xampplite\htdocs\Dateien\php\Gaestebuch\inc_Funktionen.inc on line 20" ausgegeben wird.
Folgende Verzeichnisstruktur habe ich lokal angelegt, da ich ja noch ganz am Anfang der Entwicklung stehe:
Datei "Gaestebuch.php"
|
+- "Ordner "Gaestebuch"
|
+- Datei "inc_Einstellungen.inc"
|
+- Datei "inc_Funktionen.inc"
|
+- Datei "txt_Eintraege.txt"
In der Datei "Gaestebuch.php", die beim Sprung in unser Gästebuch als erste Datei aufgerufen wird, binde ich die notwendigen Dateien ein und bereite die eingelesenen Einträge für die Ausgabe vor:
include ("Gaestebuch/inc_Einstellungen.inc");
include ("Gaestebuch/inc_Funktionen.inc");
Eintraege_aufbereiten ();
In der Datei "inc_Einstellungen.inc" lege ich u.a. den Pfad auf die Datei mit den Einträgen:
$Datei_Eintraege = "Gaestebuch/txt_Eintraege.txt";
Die Datei "inc_Funktionen.inc" beinhaltet, wenn alles fertig ist, alle Funktionen, die für den Betrieb unseres Gästebuches erforderlich sind, u.a. auch die Funktion "Eintraege_aufbereiten ()", in der in der markierten Zeile obige Warnung ausgegeben wird:
function Eintraege_aufbereiten ()
{
==> $Eintraege = array_reverse (file ($Datei_Eintraege)); <==
$Anzahl_Eintraege = count ($Datei_Eintraege);
for ($Reihe = 0; $Reihe < $Anzahl_Eintraege; $Reihe++)
{
$Spalte = explode ("|", $Eintraege [$Reihe]);
$Name = $Einzelne_Spalten [0];
$Datum = $Einzelne_Spalten [1];
$Uhrzeit = $Einzelne_Spalten [2];
$Eintrag = $Einzelne_Spalten [3];
$eMail = $Einzelne_Spalten [4];
$Homepage = $Einzelne_Spalten [5];
$Klasse_eMail = ($eMail == "") ? "Keine_eMail" : "eMail";
$Klasse_Homepage = ($Homepage == "") ? "Keine_Homepage" : "Homepage";
echo <<<EOT
<table>
<tr>
<td class="Eintrag_Abschnitt_Oben"></td>
</tr>
<tr>
<td class="Eintrag">$Eintrag</td>
</tr>
<tr>
<td class="Eintrag_Abschnitt_Unten"></td>
</tr>
<tr>
<td class="Rechtsbuendig">$Name</td>
</tr>
<tr>
<td class="Rechtsbuendig">$Datum</td>
</tr>
<tr>
<td class="Rechtsbuendig">$Uhrzeit Uhr</td>
</tr>
</table>
EOT;
}
}
Ich vermute, dass hier ein Problem mit den Pfad-Angaben vorliegt, wobei das auch nicht ganz zutreffend sein kann, denn sonst hätte die Datei "Gaestebuch.php" die zu includierenden Dateien ja nicht gefunden, also wird zunächst "inc_Einstellungen.inc" geladen und ausgeführt.
Werden die Pfad-Angaben von der "Root"-Datei, hier "Gaestebuch.php" abgearbeitet oder wie geht PHP hier vor?
Warum wird die Variable "$Datei_Eintraege" als leer interpretiert?
Ich habe deshalb kein vorgefertigtes Skript verwendet, weil ich ja etwas lernen und nicht nur einbinden möchte.
Vielen Dank für eure Mithilfe.
Gruß
Enrico