Login - Newsfunktion

Hey,

war gestern net mehr im Büro und hatte zu Hause keine Lust mehr weiter zu machen ;)

Also das mit \n hatte ich mir fast schon gedacht, hatte das hier im Forum mal irgendwo gelesen. Da werde ich dann auch mal schauen gleich, wie genau ich das machen muss!

Aber die andere Sache:

Der Nutzer soll folgendes Eingeben können:
Titel der News
seinen Namen
und
den Newstext

soll ich für jede Rubrik eine eigene *.txt erstellen?

Und die nächste Sache:
Bin noch nicht beim Auslesen, aber da wäre für mich mal interessant zu wissen, wie ich es denn jetzt bewerkstellige, dass mir alle News angezeigt werden, die in *.txt stehen oder ist das gar nicht möglich, und ich muss immer die Sachen in der *.txt überschreiben und kann nur die neusten Einträge sehen?

PS: Quelltext poste ich gleich mal
 
Also Schritt für Schritt taste ich mich jetzt heran. Aber leider funktioniert noch nichts wirklich so, wie ich das gerne hätte!

Die login.html schickt die Variablen an die ok.php, sie sollen dann später in der news.php ausgegeben werden!

ok.php
Code:
<?php
// Sichergehen, dass die Datei existiert und beschreibbar ist
if (is_writable("news.txt")) {
// Wir öffnen $filename im "Anhänge" - Modus.
// Der Dateizeiger befindet sich am Ende der Datei, und
// dort wird $news später mit fwrite() geschrieben.
if (!$handle = fopen("news.txt", "a+")) {
  print "Kann die Datei news.txt nicht öffnen";
  exit;
}
// Schreibe $news in die geöffnete Datei.
if (!fwrite($handle, $news)) {
  print "Kann in die Datei news.txt nicht schreiben";
  exit;
}
print "Sie haben folgenden Text in die News eingetragen:<br /><br /><b>$titel</b><br /><br />$name<br /><br />$news";
fclose($handle);
} else {
  print "Die Datei news.txt ist nicht schreibbar";
}
?>

news.php
Code:
<?php
$news = file ('news.txt');
print "$news"
?>

Hier wird mir nur "Array" ausgegeben! :(
 
Ja der Befehl file gibt auch ein Array aus ! Jede zeile wird in ein array geschrieben zumbeispiel

PHP:
$news = file('news.txt');
echo  $news[0]; // so gibs du die erste zeile aus
echo  $news[1]; // so gibs du die zweite zeile aus und so weiter

Mit dem Befehl explode kannst du anhand eines seperators einen String in ein array zerteilen!
z.b

PHP:
$newsex  = explode("|-|",$news[0]); // hier ist der seperator |-| und es wird ein array erstellt von der ersten zeile
 
Zuletzt bearbeitet:
Ok, gut danke ;)

Auch wenn ich hier etwas mehr frage, will aber so langsam mal mehr verstehen davon! ;)

Ist es denn möglcih mit dem fwrite befehl auch verschiedene Variablen in eine *.txt zu schreiben oder muss ich jetzt für $titel, $name und $news jeweils eine *.txt erstellen?
 
nein du brauchst nur eine txt datei :

PHP:
$inhalt = $titel."|-|".$name."|-|".$news."|-|\n";
$ef      = fopen($datei,"a+");
$ew    = fwrite($ef,$inhalt."\n");
fclose($ef);

edit// Hier noch ein paar funktionen die du villeicht gebrauchen kannst

PHP:
function write($datei,$inhalt)
{
  $ef   = fopen($datei,"a+");
  $ew   = fwrite($ef,$inhalt."\n");
          fclose($ef);
}

function delete($datei,$zeile)
{
  $lfi         = file($datei);
  $lcdfi       = count($lfi);
                 unset($lfi[$zeile]);
  $ldf         = fopen($datei,"w+");

  for($i=0;$i<$lcdfi;$i++)
  {
                 fwrite($ldf,$lfi[$i]);
  }
  fclose($ldf);
}

function edit($datei,$zeile,$newinhalt)
{
  $edfi         = file($datei);
  $cedfi        = count($edfi);
                  unset($edfi[$zeile]);
  $edfi[$zeile] = $newinhalt."\n" ;
  $edf          = fopen($datei,"w+");

  for($i=0;$i<$cedfi;$i++)
  {
                  fwrite($edf,$edfi[$i]);
  }
  fclose($edf);
}
 
Zuletzt bearbeitet:
Danke, darauf hätte man ja wirklich selber kommen können :D

Aber noch eine (hoffentlich) letzte Frage: Wenn ich das jetzt ausgeben lasse, kann ich da irgendwie ne "automatische" Zählart festlegen?

Code:
<?php
		   $news = file ('news.txt');
				   $newsex = explode("|", $news[0]);
				   print "$newsex[0]<br /><br />";
				   print "$newsex[1]<br /><br />";
				   print "$newsex[2]<br /><br />";
  ?>

Das ist mein Code bisher (wird noch geändert!) aber ich möchte halt nicht tausend mal "print "$newsex[2]<br /><br />";" da eingeben!
 
Ja, denke schon ;)

Achso, eins verstehe ich nicht $titel und §name wird irgendwie nicht übergeben
Hier das Formular:
HTML:
<form action="ok.php" method="post" target="_self">
<table >
<tr>
<td valign="top" style="width:55px">Titel:</td><td><input type="Text" name="titel" value="" size="34" maxlength=""></td></tr>
<tr>
<td valign="top" style="width:55px">Name:</td><td><input type="Text" name="name" value="" size="34" maxlength=""></td>
</tr>
<tr>
<td valign="top" style="width:55px">News:</td><td><textarea name="news" cols="29" rows="6"></textarea></td>
</tr>
<tr>
<td style="width:55px"></td>
<td valign="top" align="right"><input type="Submit" name="" value="senden"> </td>
</tr>
</table>
</form>
 
PHP:
$inhalt = $_POST['titel']."|-|".$_POST['name']."|-|".$_POST['news']."|-|\n";
$ef      = fopen($datei,"a+");
$ew    = fwrite($ef,$inhalt."\n");
fclose($ef);
so müsste es gehen !!


PHP:
  $news  = file ('news.txt');
  $cnews = count($news);
  for($i=0;$i<$cnews;$i++) {
  $newsex = explode("|", $news[$i]);
  print "$newsex[0]<br /><br />";
  print "$newsex[1]<br /><br />";
  print "$newsex[2]<br /><br />";
  }
 
Zurück