Also fertig is das ding. Hab das alte net gefunden. Musste also ein neuen zusammenschnipseln. Ich hoffe es gefällt dir. Für Designänderungen und so musst du dir das zurechtbasteln. Besonders die 2. Datei braucht noch etwas liebe. Ich hab extra versucht, das so wenig wie möglich zu designen, damit du es einfach in deine Page einbauen kannst, falls du CSS benutzt. Aber nun zu den Dateien: Es gibt 2 Dateien. Eine zum Eintragen der News(mit LogIn) und eine zum auslesen. Eine wird noch erstellt. In ihr werden die News gespeichert.
Die erste Datei heisst "
login.php":
Code:
<?php
session_start();
$filename = "news.new";
$standard = '<tr><td colspan="2">Es wurden noch keine News gepostet</font></td></tr>';
// Wenn die Datei nicht existiert, wird sie mit dem Inhalt angelegt.
if(!file_exists($filename)){
$file2 = fopen($filename,"w+");
$write1 = fwrite($file2, $standard);
$close2 = fclose($file2);
}
if($login){
if(!$name || !$passwort){ $fehler = $fehler."Sie müssen einen Benutzernamen und ein Passwort angeben.
"; }
else{
switch($name)
{
case "Benutzer1": if($passwort != "Passwort1"){ $fehler = $fehler."Das angegebene Passwort ist leider inkorrekt. Bitte überprüfen SIe Ihre Zugangsdaten.
"; } break;
case "Benutzer2": if($passwort != "Passwort2"){ $fehler = $fehler."Das angegebene Passwort ist leider inkorrekt. Bitte überprüfen SIe Ihre Zugangsdaten."; } break;
default: $fehler = $fehler."Der angegebene Benutzername ist in unserer Datenbank leider nicht vorhanden. Bitte überprüfen Sie Ihre Zugangsdaten."; break;
}
}
if($fehler){ header("Location: login.php?fehler=$fehler&name=$name"); }
else{
session_register("login", "name", "passwort");
if($save){
$date = strftime("%d.%m.%Y", time());
$new = str_replace("\n","
",$new);
$new = '<tr><td>'.$date.'</td><td>Eingetragen von: '.$name.'</td></tr><tr><td colspan="2">'.$new.'</td></tr><tr><td colspan="2"><hr width="500"></td></tr>';
#------------------------------
$file0 = fopen($filename,"r");
$content = fread($file0, filesize ($filename));
if($content == $standard){ $content = ""; }
elseif(substr_count($content, "") == 5){ $content = explode("", $content); array_pop($content); $content = implode("", $content); }
$close0 = fclose($file0);
$new = $new.$content;
$file1 = fopen($filename,"w+");
$write0 = fwrite($file1,$new);
$close1 = fclose($file1);
if($file0 && $file1 && $write0 && $close0 && $close1){ $content = "Die News wurden erfolgreich gepostet.
<a href=\"login.php\">Neue News posten</a>
<a href=\"login.php?do=logout\">Logout</a>"; }
}
elseif($do)
{
switch($do)
{
case "logout": session_destroy(); header("Location: login.php"); break;
}
}
else{
$content = '<h3 align="center">News eintragen</h3>
<form name="news" action="login.php" method="post">
<table border="0" align="center">
<tr><td colspan="2"><textarea name="new" cols="50" rows="8">'.$new.'</textarea></td></tr>
<tr><td colspan="2"><input type="submit" name="save" value="News eintragen"></td></tr>
</table>
</form>';
}
}
}else{
if($fehler){ $fehler = "Der Login war nicht erfolgreich. Es sind die folgenden Fehler aufgetreten:
<font color=\"#ff0000\">".$fehler."</font>"; }
$content = '
<form name="login_form" action="login.php" method="post">
<table border="0" align="center">
<tr><td>Benutzername</td><td><input type="text" name="name" value="'.$name.'"></td></tr>
<tr><td>Passwort</td><td><input type="password" name="passwort" value=""></td></tr>
<tr><td colspan="2" align="center"><input type="submit" name="login" value="Einloggen"></td></tr>
</table></form><p align="center">'.$fehler.'</p>';
}
?>
<html>
<head>
<title>Your Title</title>
</head>
<body>
<?php echo $content; ?>
</body>
</html>
Ich habe manche Stellen so geschrieben, dass du den Login ausweiten kannst. Deshalb sind auch an manchen Stellen, wo statt des "switch" auch ein einfaches "if" gereicht hätte, ein größerer Codeblock mit switch und case usw. damit du auch z.B. Mehreren Benutzern die Möglichkeit geben kannst, die News zu schreiben. Wenn du den LogIn selber ausweiten willst, solltest du das News-eintragen in den Do-switch-codeblock einbauen, damit du mit z.B. do=news die News-page starten kannst. Im moment habe ich nur den Logout dorthin geschrieben.
Nun zur 2. Datei. Sie heisst
news_anzeigen.php, du kannst ihr aber auch jeden anderen Namen, der dir passt geben. Sie ist nicht in das andere Script integriert. Du brauchst sie auch nicht zwingend. Hier der Code:
Code:
<?php
$filename = "news.new";
$file = fopen($filename,"r");
$content = fread($file, filesize ($filename));
$close = fclose($file);
$content = "<table border=\"0\">$content</table>";
?>
<html>
<head>
<title>Your Title</title>
</head>
<body>
<?php echo $content; ?>
</body>
</html>
Das wars auch schon. Die Datei, die später die News beinhaltet trägt den Namen "
news.new". Mir is nix besseres eingefallen. Aber du kannst ihren Namen ändern, wenn du ebenfalls in der login.php und der news_anzeigen.php oben die variable $filename mit dem Dateinamen der news-datei bestückst. Ich hoffe das ist so ein script, wie du gesucht hast.
Mfg
Speedy