Stefan Scheurer: temp-file machen, reinschreiben, umbennen....(long txt)

Beitrag lesen

Hallo miteinander...

Ich habe mich mit einem kleinen messageboard befasst, welches für meine Pfadfindergruppe dienen soll.
Bislang hat alles geklappt, es sind "nur" kosmetische kleinigkeiten ausstehend.
Der grösste fehler aber kann ich einfach nicht aus der welt schaffen.

Ich möchte gerne die reihenfolge der einträge richtigstellen...das heisst...das formularfeld wird ausgefüllt und die nachricht UNTER den anderen nachrichten in einem txt-file gespeichert und von dort in einem zweiten php3 script ausgelesen. Die neuste nachricht erscheint unten, und nicht an oberster stelle wie gewünscht.

Als die pointer versetzung mit "r+" und co. nichts nutzte (vielleicht weil bug oder ich zu dumm...), versuche ich nun ein temp-file zu generieren, die aktuellste meldung reinschireben, das original file einzulesen und DANACH (und somit hinter) die neuste nachricht in das temp-file zu schreiben.
Das original file wird gelöscht und das tmp-file wird unbennant in txt!
Aber irgendetwas mache ich falsch...

her das script

<HTML>

<HEAD>
        <TITLE>add NEWS to www.pfadilaufen.ch</TITLE>
</HEAD>

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

if(!file_exists($forumdb)) {
  $fp=fopen($forumdb,"w");
  fclose($fp);  
}
if(isset($abschicken)) {
   $fpn=@fopen($forumdb.".tmp","w");
   if($fpn<=0) {
    ?>
fehler
    <?php
  }
  $text=htmlspecialchars($text);
  $text=nl2br($text);
  $datum=date("d.m.Y / H:i");

$eintrag = "<br>";
  $eintrag.= "<b><font size=4 color=black>$titel</b><p></font>";  
  $eintrag.= "<font size=3 color=black>$text<p></font>";
  $eintrag.= "<p align=right><i><font size=2 color=brown>von <a href="mailto:$email">$name</a></i>,   $datum</font>";
  $eintrag.= "<br><hr width=95%>";
  
  fputs($fpn,$eintrag);
  $fpn=@fopen($forumdb,"r");
  if($fpn<=0) {
   ?>
  fehler
   <?php
  }
  while(!feof($fp)) {
   $zeile=fgets($fp,32000);
   fputs($fpn,$zeile);
  }
  fclose($fp);
  fclose($fpn);
  unlink($forumdb);
  rename($forumdb.".tmp",$forumdb);
  
// does refresh/open a other page marked at "content"
print("<html><head> ");
print("<meta HTTP-EQUIV="Refresh" Content="0;URL=newslist3.php3"> ");
print("</head></html>");
}
?>
<BODY background="../hinterlink.jpg" link=brown vlink=red alink=orange>
<center>
<h1>add NEWS!</h1>
<table border="0">
<form action="newsadd3.php3" method="POST">
<tr>
  <td align="RIGHT">Titel</td><td><input type="Text" name="titel" size=30 maxlength=50></td>
</tr>
<tr>
  <td align="RIGHT">Name:</td><td><input type="Text" name="name" size=30 maxlength=50></td>
</tr>
<tr>
  <td align="RIGHT">E-Mail:</td><td><input type="Text" name="email" size=30 maxlength=50></td>
</tr>
  <tr>
  <td align="RIGHT">Text:</td><td><textarea name="text" cols=30 rows=20 wrap=physical></textarea></td>
</tr>
  <tr>
  <td colspan="2" align="CENTER"><input type="Submit" name="abschicken" value="Abschicken"></td>
</tr>
</form>
</table>
</center>
</BODY>
</HTML>

ich wäre um tips was falsch ist...was besser wäre oder wie man es anders lösen könnte 1000 mal dankbar...

sorry, wegen dem langen text!

Danke und bis bald

scheuri