Code Snippet: Einfaches News System

Kasn

Mr.Chrome, SCHANITZELKÖNIG
Thread Starter
Mitglied seit
06.12.2002
Beiträge
11.046
Ort
70
Morgen,

ich werd versuchen hier in nächster Zeit ein paar kleine Code Bestandteile zu posten, die jeder frei auf seiner Seite verwenden darf.

Natürlich werde ich versuchen es so einfach wie möglich zu halten, also ohne mysql bzw Datenbankanbindung und sowas. Nur pures PHP und Textdatein, um zu garantieren das es auf möglichst vielen System läuft.

Also fangen wir an mit unserem News System:

Wir benötigen dafür drei Dateien.
Eine zur Ausgabe, eine zur Eingabe und eine zum Speichern der Daten. Ausgabe und Eingabe sind .php dateien, und die Speicherdatei wird eine .txt Datei werden.

Nun werfen wir einen Blick auf die wichtigsten Funktionen die wir benötigen werden:

fopen (öffnet eine Datei zum lesen oder schreiben)
http://de.php.net/manual/de/function.fopen.php

fputs (schreibt Daten in eine Datei)
http://de.php.net/manual/de/function.fputs.php

fclose (schliesst die Datei)
http://de.php.net/manual/de/function.fclose.php

file (liesst eine Datei Zeile für Zeile ein)
http://de.php.net/manual/de/function.file.php

explode (trennt eine Zeichenkette anhand einen bestimmten Trennzeichens)
http://de.php.net/manual/de/function.explode.php

Jetzt der Aufbau der beiden PHP Dateien, zuerst die post.php welche die News schreiben wird.

PHP:
<?php
$trenner = "|";
if($mode == "write")
{
   $str = $nachricht . $trenner . $verfasser . $trenner . time() . $trenner . "\n";
   $file = fopen("data.txt", "a+");
   fputs($file, $str);
   fclose($file);
   echo "Nachricht gespeichert!<br>Neue verfassen -> <a href=\"post.php\">hier!</a>";
}
else
{
  ?>
  <form action="post.php" method="post">
    nachricht: <input type="text" name="nachricht" value=""><br>
    verfasser: <input type="text" name="verfasser" value=""><br>
    <input type="hidden" name="mode" value="write">
    <input type="submit" value="abschicken"><br>
  </form>	
  <?php
}
?>

Der Gesammte Aufbau der Datei, nun einzelne wichtige Teile:
PHP:
if($mode == "write")
{
nur wenn eine Variable $mode vorhanden ist und auf "write" gesetzt ist wird die Mechanik zum Speichern ausgeführt, sonst wird die Eingabemaske gezeigt.
PHP:
 $str = $nachricht . $trenner . $verfasser . $trenner . time() . $trenner . "\n";
Setzt aus den übergebenen Werten und dem Trennzeichen wird die Zeichenkette zusammengebaut die später in die Datei geschrieben werden soll. Zusätzlich wird noch die Methode time() verwendet damit es später möglich ist zu sagen wann die Nachricht verfasst wurde. Wichtig ist das "\n" am Ende, dies verursacht einen Zeilenumbruch, der dazu benötigt wird die einzelnen Meldungen am Ende zu trennen.
Die neue Zeichenkette wird in $str gespeichert!
PHP:
 $file = fopen("data.txt", "a+");
Die Datei wird geöffnet. Der erste Parameter ist der Dateiname, Parameter 2 der "Write Mode". "a" steht hierbei für "append" also Anhängen. Die neuen Daten werden an das Ende der bereits existenten Daten angehängt. "+" erzwingt das die Datei angelegt wird falls sie nicht existiert.
Der FileHandle der geöffneten Datei wird in die Variable $file gespeichert.
PHP:
 fputs($file, $str);
Hier wird die Zeichenkette mit dem Daten ($str) in die Datei ($file) gespeichert. Die Datei muss vorher mit fopen geöffnet sein.
PHP:
 fclose($file);
Nun muss der FileHandle nur noch geschlossen werden.


soweit mit Teil 1, Teil 2 mit dem Auslesen kommt bald. Im dritten Teil werden wir das System absichern, sowie noch ein paar Gimicks einbauen (zb. UBB Code)

Anregungen bitte posten oder per PM :)
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
teil drei würde mich interessieren!
im 1. teil ist für mich noch nichts neues drin (leider) und ich schätze mal dass teil 2 dann auch für einsteiger sein wird ?!
 
jo, in teil 2 wird nur das auslesen und darstellen kommen

und teil 2 kommt heute noch! (vielleicht auch noch teil 3)
 
Zuletzt bearbeitet:
keine zeit gehabt...ich hoffe heute wirds was :fresse:
 
Scheint ja wohl nicht der Fall gewesen zu sein...:d ;)
 
ich vertröste mal wieder aufs wochenende ;)
 
lol ja, aber ich hab ATM keinen Rechner bzw kein I-Net @home daher isses bisl blöd
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh