PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : rewind befehl


oma
04.10.2003, 21:11:07
Hallo

ich habe vor kurzer Zeit angefangen php zu programieren und bin im moment dabei mir ein einfaches Gästebuch zu schreiben.

Das script läuft auch ohne probleme.

es funktioniert so:

Ein geschriebener eintrag wird in eine Textdatei geschrieben und dann wieder ausgelesen.

Aber es wird immer nur an das Ende der Datei geschrieben und ich möchte aber an den anfang schreiben, sodas der letzte Eintrag oben steht.


$fp=fopen($forumdb,"a+"); <-- hier wird meine Datei geöffnet

rewind($forumdb); <-- stellt der Datei zeiger auf anfang
fputs($fp,$eintrag); <-- fügt den eintag ein

fclose($fp); <-- schliest die datei


Der "rewind" Befehl will aber nicht funktionieren.

Ich hoffe ihr könnt mir bei meinem Problem weiterhelfen.

MFG Marco

toweter
04.10.2003, 21:37:42
einfach vorher die datei einlesen:
$alt = file_get_contents($forumdb);
$eintrag = ($eintrag.$alt);

bei fopen statt a+: "w"

oma
04.10.2003, 22:04:15
wo genau soll ich das einfügen ??

hier ist mal mein ganzer code

<?php
$forumdb="forum.txt";
$forum="forum.php";

if(isset($abschicken)&&$name!=""&&$text!="") {

$text=htmlspecialchars($text);
$datum=date("d.m.Y H:i:s");
$eintrag="<......>";

$fp=fopen($forumdb,"a+");
rewind($forumdb);
fputs($fp,$eintrag);

fclose($fp);

echo '<meta http-equiv="refresh" content="0;url=forum.php">';
}
?>

toweter
04.10.2003, 22:14:33
<?php
$forumdb="forum.txt";
$forum="forum.php";

if(isset($abschicken)&&$name!=""&&$text!="") {

$text=htmlspecialchars($text);
$datum=date("d.m.Y H:i:s");
$eintrag="<......>";
// HIER EVTL. EINFÜGEN
$old = file_get_contents($forumdb);
$eintrag = ($eintrag.$old);

$fp=fopen($forumdb,"w");
rewind($forumdb);
fputs($fp,$eintrag);

fclose($fp);

header("Location: forum.php");
}
?>
Allerdings hast du Text, Datum und Eintrag nicht zusammengefügt,
bei der Markierung oben evtl. noch einfügen:
$eintrag = ($datum."<br>n".$eintrag."<br>n".$text");

oma
04.10.2003, 22:20:15
ja der eintrag ist drin ich hab ihn nur nicht gepostet weil da noch recht viel html zeug dabei ist :)

aber wenn ich das einfüge bekomme ich von server diese fehlermeldung

Fatal error: Call to undefined function: file_get_contents() in /home/www/web15/html/test/forum_eintrag.php on line 15

toweter
04.10.2003, 22:37:47
deine php-version ist veraltet...
wenn du das (am anfang des scripts) einfügst kannst du file_get_contents verwenden:
if (!function_exists("file_get_contents")) {
function file_get_contents($filename, $use_include_path = 0) {
$data = "";
$file = @fopen($filename, "rb", $use_include_path);
if ($file) {
while (!feof($file)) $data .= fread($file, 1024);
fclose($file);
}
return $data;
}
}

oma
04.10.2003, 22:40:58
Super es funktioniert jetzt :)

Ich danke dir für deine Hilfe.