Hilfe zum Tutorial, zum schreiben und lesen von .txt Datein

DavidWitteSZ

Mitglied
Hallo,
ich habe mir das Tutorial zum lesen und schreiben von txt Dateien durchgelesen und wollte dieses mal in einem Script zusammen fassen.Das ist mir leider noch nicht so recht gelungen.Ich habe irgendwo einen Syntaxfehler, ich finde ihn nur nicht. Wäre nett wenn ihr euch das mal anschauen koenntet .

mfg David

Code:
<?php

$datei = "kommentar.txt";  // datei öffnen

if($post)
{
  $fp = fopen($datei,"a+"); # datei zum lesen öffnen

  $newDate = date("d.m.Y"); # datum
  $newTime = date("H.i"); # zeit
  # zeilenumbrüche umwandeln
  $newBericht = str_replace("\r","<br>",$newBericht);
  $newBericht = str_replace("\n","<br>",$newBericht);
  
   # $newName : formularelemente
  $data = "$newName|-|$newBericht|-|$newMail|-|$newDate|-|$newTime|-|\n\r";
  
  fputs($fp,$data); # daten in datei speichern
  fclose($fp);
} 

?>

<?php

if(file_exists($datei))
{
$inhalt = file($datei,"r");
$anzahl = count($inhalt);
    for($i = 0; $i < $anzahl; $i++)
    {
# inhalt rückwärts auslesen
        $newinhalt = array_reverse($inhalt);
# inhalt zerteilen
        $eintrag = explode("|-|",$newinhalt[$i]);
# variabeln defenieren
        $name = $eintrag[0];
        $bericht = $eintrag[1];
        $email = $eintrag[2];
        $datum = $eintrag[3];
        $zeit = $eintrag[4];
                
# daten ausgeben
              echo"<table width=\"437\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
              echo"<tr>\n";
              echo"<td width=\"102\" height=\"19\" valign=\"top\"><a href=\"mailto:$email\">$name</a></td>\n";
              echo"<td width=\"335\" valign=\"top\">$datum $zeit</td>\n";
              echo"</tr>\n";
              echo"<tr>\n";
              echo"<td height=\"18\" colspan=\"2\" valign=\"top\"><p>$bericht</p>\n";
              echo"<hr></td>\n";
              echo"</tr>\n";
              echo"</table>\n";
    }
}
else
{
    echo"Es wurde keine Datei gefunden";
}

?>

<form name="newEntry" method="post" action="">
<table width="355" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td height="19" colspan="2" valign="top"><div align="center">Neuer Eintrag </div></td>
  </tr>
  <tr>
    <td width="88" height="22" valign="top">Name:</td>
    <td width="267" valign="top">
      <input name="newName" type="text" id="name">
   </td>
  </tr>
  <tr>
    <td height="22" valign="top">Email:</td>
    <td valign="top"><input name="newMail" type="text" id="email"></td>
  </tr>
  <tr>
    <td height="118" valign="top">Kommentar:</td>
    <td valign="top">
      <p>
        <textarea name="newBericht" cols="40" rows="6" id="bericht"></textarea>
      </p>    </td>
  </tr>
  <tr>
    <td height="19" colspan="2" valign="top">
      <div align="center">
        <input name="post" type="submit" id="post" value="submit">
      </div>
      </td>
  </tr>
</table>
</form>
 

IIIRaVeNIII

Mitglied
Was funktioniert denn bei dir nicht?

Habe nämlich gerade mal den Code getestet und bei mir läufts einwandfrei!

Gibts irgendeine Fehlermeldung?

greetz

R@ven
 

DavidWitteSZ

Mitglied
ok ich hatte die datei wohl noch im cash wo ich nen syntax fehler hatte und jetzt hat er die 'aktuelle' genommen und ich komme jetzt zu der form aber beim submit kommt folgendes


Warning: file() expects parameter 2 to be long, string given in /opt/lampp/htdocs/TEST.php on line 28
 

IIIRaVeNIII

Mitglied
hmm.. ich hab das Ding jetzt auf 3 Servern getestet. überall läuft es! Wo testest du das Script denn? Bei dir local, oder irgendwo im Netz?

Ich kann nämlich momentan den Fehler nicht reproduzieren. Gibt es ne Adresse, wo man sich das auf deinem Server ansehen kann? Vielleicht liegt ja da irgendwo das Problem..?

greetz

R@ven
 

DavidWitteSZ

Mitglied
ich teste es local auf einer linux maschiene mit einem xampp (lammp) server, und da lief es nicht. vieleicht habe ich ja die falsche php version installiert, so dass er die klassen nicht kennt. mann weiß es nicht. wenn du sagst das es läuft dann glaube ich dir das.
 

Sven Mintel

Mitglied
Code:
$inhalt = file($datei,"r");
...wozu soll das "r" dort gut sein.... das hast du wahrscheinlich mit fopen() verwechselt ;)
 

DavidWitteSZ

Mitglied
ok ich weiß zwar nicht wieso das im tut jetzt anders steht, da ich nur copy paste gemcht habe. aber das "r" gehört da wohl wirklich nich hin.

Oo

what ever who cares

cya

david
 

Sven Mintel

Mitglied
Das steht jetzt anders im Tut, weil ich es nach deinem Hinweis geändert habe...
Es stand da wirklich falsch drinnen, du musst also keinen Nottermin mit deinem Psychiater vereinbaren.:)