• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Gästebuch mit .txt - Parser findet Datei nicht

  • Ersteller Ersteller Plankton
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
P

Plankton

Guest
Hallo Leute. Ich plagem ich seit einer Stunde mit folgendem Problem:
Ich habe mir ein kleines Gästebuch mit PHP und einer .txt-datei gebaut. Dummerweise kommt bei Aufruf des Gästebuchs folgender Fehler:
Code:
Warning: readfile(gb.txt) [function.readfile]: failed to open stream: No such file or directory in S:\xampp\xampp\htdocs\homepage_neu\sites\gb.php on line 60

Dabie weiss ich, dass die Datei auf dem loclahost liegt.

Hier der Quellcode:
PHP:
<h3>G&auml;stebuch</h3>
<hr style="width:350px;" />
<!-- Formularteil -->
<div style="margin:auto;">
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
Ihr Name:<br />
<input type="text" name="name"><br />
Ihre Homepage (falls vorhanden):<br />
<input type="text" name="homepage"><br/>
Ihre E-Mail-Adresse:<br />
<input type="text" name="mail"><br />
Ihr Eintrag: <br />
<textarea cols="60" rows="5" name="eintrag"></textarea><br />
<input type="submit" value="Eintrag senden"></form>
</div>
<!-- Ende des Formularteils -->

<!-- Ausgabe -->
<h4>Eintr&auml;ge</h4>
<?php
// Variable als Datei setzen
$datei = "gb.txt";

//Prüfen, ob alle Felder gestzt sind
if (!empty($_POST["eintrag"]) && !empty($_POST["name"]) && !empty($_POST["mail"])) {
	$eintrag = $_POST["eintrag"];
	$name = $_POST["name"];
	$email = $_POST["mail"];
	
//Datei wird geöffnet

	$fp = fopen($datei, "r+");

//Umwandeln der mail-variablen in einen Link

	$email = "<a href='mailto:$email'>$email</a>";
	
// Datum

	$datum = date("j.n.y");
	
//HTML wird maskiert

	$eintrag = htmlspecialchars($eintrag);
	$eintrag = stripslashes($eintrag);
	$eintrag = nl2br($eintrag);
	
// Eintrag zusammenfrickeln

	$text="<p><span style='font-weight:bold;'>$name</span> ($email) hat sich am $datum eingetragen. <br /> Er schrieb: $eintrag";

//Eintrag speichern

		fputs($fp, "$text");

// Datei schließen

		fclose($fp);
}
		readfile($datei);
?>







<!-- Ende Ausgabe -->

Bitte um Hilfe, danke.

mfg Plankton
 
Vielleicht stimmt der relative Pfad nicht?
Versuchs mal mit einem Absoluten, musst du aber dann ändern, wenn dus hochlädst.
 
Alles klar. Der Fehler ist weg. Danke. Dummerweise zeigt er keine Einträge an. Und in der gb.txt stehen sie auch nicht drin. Wo ist denn hier bitte schön der Fehler (QT siehe oben)?

mfg Plankton

EDIT: boehseronkel, ja liegt sei, Crackpods Tip war der richtige.
 
okay ... allerdings funktionieren bei mir lokal BEIDE pfade relativ sowohl als auch absoluter .. aber das ist egal ..

zu dem nächsten problem !

mhh also bei mir geht dein quelltext ... habs gerade getestet, insert geht und auslesen geht auch -.-

gruss sven
 
Okay...mal angenommen, ich lade das Gb jetzt auf meinen funpic-webspace. Ich müsste also die gb.txt mit chmod 666 versehen, oder?

mfg Plankton

EDIT: Ich habe es auf den funpic-server gelegt, mit dem Wert 745. Aber da kommen auch nur noch Fehlermeldungen...
 
Zuletzt bearbeitet von einem Moderator:
Okay, das Script ist jetzt in den Ur-Zustand versetzt. Hier der Quellcode:
PHP:
<h3>G&auml;stebuch</h3>
<hr style="width:350px;" />
<!-- Formularteil -->
<div style="margin:auto;">
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
Ihr Name:<br />
<input type="text" name="name"><br />
Ihre Homepage (falls vorhanden):<br />
<input type="text" name="homepage"><br/>
Ihre E-Mail-Adresse:<br />
<input type="text" name="mail"><br />
Ihr Eintrag: <br />
<textarea cols="60" rows="5" name="eintrag"></textarea><br />
<input type="submit" value="Eintrag senden"></form>
</div>
<!-- Ende des Formularteils -->

<!-- Ausgabe -->
<h4>Eintr&auml;ge</h4>
<?php
// Variable als Datei setzen
$datei = "gb.txt";

//Prüfen, ob alle Felder gestzt sind
if (!empty($_POST["eintrag"]) && !empty($_POST["name"]) && !empty($_POST["mail"])) {
    $eintrag = $_POST["eintrag"];
    $name = $_POST["name"];
    $email = $_POST["mail"];
    
//Datei wird geöffnet

    $fp = fopen($datei, "r+");

//Umwandeln der mail-variablen in einen Link

    $email = "<a href='mailto:$email'>$email</a>";
    
// Datum

    $datum = date("j.n.y");
    
//HTML wird maskiert

    $eintrag = htmlspecialchars($eintrag);
    $eintrag = stripslashes($eintrag);
    $eintrag = nl2br($eintrag);
    
// Eintrag zusammenfrickeln

    $text="<p><span style='font-weight:bold;'>$name</span> ($email) hat sich am $datum eingetragen. <br /> Er schrieb: $eintrag";

//Eintrag speichern

        fputs($fp, "$text");

// Datei schließen

        fclose($fp);
}
        readfile('http://plankton.pl.funpic.de/sites/gb.txt');
?>







<!-- Ende Ausgabe -->

Fehlermeldungen von funpic:

1. Fehlermeldung:
Warning: readfile(): URL file-access is disabled in the server configuration in /usr/export/www/vhosts/funnetwork/hosting/plankton/sites/gb.php on line 60

2. Fehlermeldung:
Warning: readfile(http://plankton.pl.funpic.de/sites/gb.txt): failed to open stream: no suitable wrapper could be found in /usr/export/www/vhosts/funnetwork/hosting/plankton/sites/gb.php on line 60

gb.txt ist mit CHMOD 755 ausgestattet.

mfg Plankton
 
Zuletzt bearbeitet von einem Moderator:
Das Problem hatte ich auch mal. Frank hat das hier erklärt.

diese Fehlermeldung hatte ich auch schon einmal. Im Klartext bedeutet das, das der PHP Wrapper "denkt" ein externes Programm oder ein andere Server versucht eine Datei anzulegen. Der Server unterdrückt es dann, weil es nur erlaubt ist, vom gleichen Server aus eine Datei anzulegen.

Versuchs mal mit einem relativen Link
 
Jetzt ist es nur noch eine Fehlermeldung:
Warning: readfile(gb.txt): failed to open stream: No such file or directory in /usr/export/www/vhosts/funnetwork/hosting/plankton/sites/gb.php on line 60

mfg Plankton
 
entweder gibts die Datei nicht oder sie hat die falschen rechte und das Skript kann die gb.txt nicht lesen(z.b. bei 700[dann hätte der nur der admin zugriff] oder bei 007 - bin mir bei zugriffsrechten nie ganz sicher xD )
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben