Also, es geht um folgendes Problem. Ich bin im Moment dabei ein MySQL-basiertes Guestbook zu schreiben, und das Ding will einfach nicht so, wie ich will 
Zum Aufbau:
- In einem HTML-Formular werden der Name des Autors und der und dessen Kommentar an ein PHP Skript übergeben.
- Das Skript erstellt nun im Unterverzeichnis /gbfiles eine Datei, die den Kommentar enthält (z.B. 0001.gbf).
- Der Dateiname wird dabei aus der MySQL Datenbank (aus dem Primary Key) generiert.
- In der Datenbank wird nun nur der Name des Autors und die Pfadangabe für die Kommentar-Datei gespeichert.
- Schließlich gibt das Skript eine Tabelle aus, in der aus der Datenbank der Autorenname und aus der Kommentardatei der Kommentar eingepflegt werden.
Zu den Problemen:
- Die Kommentar-Dateien (.gbf) werden nicht im Unterverzeichnis /gbfiles sondern im Stammverzeichnis des Skripts erstellt.
- Wenn man einen Kommentar eingibt und auf "Senden" klickt, ändert sich erstmal gar nichts. Erst wenn man nochmal F5 drückt oder versucht einen neuen Eintrag zu erstellen, erscheint der alte Kommentar.
Quelltext:
<form action="<?php echo $PHP_SELF ?>" method="post">
<table align="center">
<tr>
<h1>Guestbook</h1>
</tr>
<tr>
<font face="Verdana, arial, helvetica, sans-serif" size="-1">Ihr Name:</font>
</tr>
<tr>
<input type="text" name="name" size="52" style="border-style:solid;border-color:black;border-width:1px;background-color:#eeeeee">
</tr>
<tr>
<font face="Verdana, arial, helvetica, sans-serif" size="-1">Ihr Kommentar:</font>
</tr>
<tr>
<textarea rows="10" cols="40" name="kommentar" style="border-style:solid;border-color:black;border-width:1px;background-color:#eeeeee"></textarea
</tr>
<tr>
<div align="right">
<input type="submit" value="Absenden">
</div>
</tr>
</table>
</form>
<!-- Beginn PHP-Code! -->
<?php
$db = @mysql_connect("localhost", "Administrator", "cadd66");
mysql_select_db("rokugate", $db);
$nor = mysql_query("SELECT * FROM guestbook;");
$anzahl = mysql_num_rows($nor);
if(!empty($kommentar)) {
$filepath = "gbfiles/"+($anzahl+1)+".gbf";
$filehandle = fopen($filepath, "w");
fwrite($filehandle, $kommentar);
fclose($filehandle);
mysql_query("INSERT INTO guestbook (author, compath) VALUES ('$name', '$filepath');");
}
echo "<table width=90%>";
while ( $row = mysql_fetch_row($nor)) {
echo "
<tr>
<p><b>$row[1]</b></p>
</tr>
<tr>
<p>";
readfile($row[2]);
echo "</p>
</tr><hr>";
}
@mysql_close($db);
echo "</table>";
echo "$filepath";
?>
<!-- Ende PHP-Code! -->
P.S.: Ich fürchte ich habe mich irgendwo mit den Verzeichnisangaben verzettelt. Der Bug mit dem Aktualisieren ist mir allerdings ein echtes Rätsel.
Danke schonmal, Talwyn
Zum Aufbau:
- In einem HTML-Formular werden der Name des Autors und der und dessen Kommentar an ein PHP Skript übergeben.
- Das Skript erstellt nun im Unterverzeichnis /gbfiles eine Datei, die den Kommentar enthält (z.B. 0001.gbf).
- Der Dateiname wird dabei aus der MySQL Datenbank (aus dem Primary Key) generiert.
- In der Datenbank wird nun nur der Name des Autors und die Pfadangabe für die Kommentar-Datei gespeichert.
- Schließlich gibt das Skript eine Tabelle aus, in der aus der Datenbank der Autorenname und aus der Kommentardatei der Kommentar eingepflegt werden.
Zu den Problemen:
- Die Kommentar-Dateien (.gbf) werden nicht im Unterverzeichnis /gbfiles sondern im Stammverzeichnis des Skripts erstellt.
- Wenn man einen Kommentar eingibt und auf "Senden" klickt, ändert sich erstmal gar nichts. Erst wenn man nochmal F5 drückt oder versucht einen neuen Eintrag zu erstellen, erscheint der alte Kommentar.
Quelltext:
<form action="<?php echo $PHP_SELF ?>" method="post">
<table align="center">
<tr>
<h1>Guestbook</h1>
</tr>
<tr>
<font face="Verdana, arial, helvetica, sans-serif" size="-1">Ihr Name:</font>
</tr>
<tr>
<input type="text" name="name" size="52" style="border-style:solid;border-color:black;border-width:1px;background-color:#eeeeee">
</tr>
<tr>
<font face="Verdana, arial, helvetica, sans-serif" size="-1">Ihr Kommentar:</font>
</tr>
<tr>
<textarea rows="10" cols="40" name="kommentar" style="border-style:solid;border-color:black;border-width:1px;background-color:#eeeeee"></textarea
</tr>
<tr>
<div align="right">
<input type="submit" value="Absenden">
</div>
</tr>
</table>
</form>
<!-- Beginn PHP-Code! -->
<?php
$db = @mysql_connect("localhost", "Administrator", "cadd66");
mysql_select_db("rokugate", $db);
$nor = mysql_query("SELECT * FROM guestbook;");
$anzahl = mysql_num_rows($nor);
if(!empty($kommentar)) {
$filepath = "gbfiles/"+($anzahl+1)+".gbf";
$filehandle = fopen($filepath, "w");
fwrite($filehandle, $kommentar);
fclose($filehandle);
mysql_query("INSERT INTO guestbook (author, compath) VALUES ('$name', '$filepath');");
}
echo "<table width=90%>";
while ( $row = mysql_fetch_row($nor)) {
echo "
<tr>
<p><b>$row[1]</b></p>
</tr>
<tr>
<p>";
readfile($row[2]);
echo "</p>
</tr><hr>";
}
@mysql_close($db);
echo "</table>";
echo "$filepath";
?>
<!-- Ende PHP-Code! -->
P.S.: Ich fürchte ich habe mich irgendwo mit den Verzeichnisangaben verzettelt. Der Bug mit dem Aktualisieren ist mir allerdings ein echtes Rätsel.
Danke schonmal, Talwyn