Seite 1 von 1

Shoutbox...

Verfasst: 18.11.2006 17:31
von Domitz
Hallo.
ich habe mir letztens aus einem GB ne Shoutbox gezimmert.
Diese Shoutbox läuft nur mit PHP (ohne Datenbank).

Die Einträge werden in einer .txt Datei gespeichert.
Leider werden immer alle nachrichten angezeigt, ich will jedoch gerne, das nur die letzten XX nachrichten ausgegeben werden.
Will aber nicht, das dann unten seite 1 von 5 stehtoder so.
Also so, das nur die letzten XX nachrichten zu sehen sind.

Der Quelltext der daten sieht wie folgt aus:
Eintrag.php

Code: Alles auswählen

<html>
<head>
<meta http-equiv="refresh" content="10; url=eintrag.php">
</head>
<body bgcolor="#ffffff" alink="000000" link="000000" vlink="000000">
<?php
$beitrag = file("kommentar.txt");
krsort($beitrag);

foreach($beitrag as $ausgabe)
   {
   $ausgabe = stripslashes($ausgabe);
   $zerlegen = explode("|", $ausgabe);

   echo "
<a href=\"javascript:alert('Dieser Beitrag ist vom $zerlegen[2]');\"><img src=\"uhr.gif\" border=\"0\"></a> <font size=\"2\" face=\"verdana\" color=\"#000000\"><b><a href=\"http://www.coaster-park.de/forum/profile.php?mode=viewprofile&u=$zerlegen[1]\" target=\"_top\">$zerlegen[1]</a>:</b> $zerlegen[3]</font><br>   

   ";
   }
?>
<?php
if(!file_exists("count2.txt"))
{$counter=fopen("count2.txt", "a");}
else
{$counter=fopen("count2.txt", "r+");}
$aufruf=fgets($counter,100);
$aufruf=$aufruf+1;
rewind($counter);
fputs($counter,$aufruf);
fclose($counter);
echo ;
?> 
</body>
neuerkommentar.php

Code: Alles auswählen

<html>
<head>
<title>G?stebuch - Speichere Beitrag</title>
<meta http-equiv="refresh" content="1; url=http://www.coaster-park.de/forum/index.php#kommentar">
</head>
<body>

<?php
$user = $_POST["Name"];
$user = htmlentities($user);

$inhalt = $_POST["inhalt"];
$inhalt = htmlentities($inhalt);
$inhalt = str_replace("\n", " ", $inhalt);

$email = $_POST["EMail"];
$email = htmlentities($email);

if ($inhalt == "" or $user == "")
   {
   echo "Sie m?ssen das Feld \"Namen\"
   und \"Inhalt\" ausf?llen";
   }

else
   {
   $datum= date("d.m.Y H:i");

   $eintrag="$email|$user|$datum|$inhalt";

   $datei = fopen("kommentar.txt", "a");
   fwrite($datei, "\n".$eintrag);
   fclose($datei);

   echo "Ihr Eintrag wurde erfolgreich gespeichert";
   }
?>

<br>
<?php
if(!file_exists("count.txt"))
{$counter=fopen("count.txt", "a");}
else
{$counter=fopen("count.txt", "r+");}
$aufruf=fgets($counter,100);
$aufruf=$aufruf+1;
rewind($counter);
fputs($counter,$aufruf);
fclose($counter);
echo ;
?> 

</body>
</html>
kommentar.txt

Code: Alles auswählen

domitz@gmx.de|Domitz|17.11.2006 16:16|text
domitz@gmx.de|Domitz|17.11.2006 16:21|nachricht
domitz@gmx.de|Domitz|17.11.2006 16:28|test
email@domitz.com|-Tim-|17.11.2006 16:29|test test
domitzgmx.de|Domitz|17.11.2006 16:29|laaaa
</html>[/code]

Könnt ihr mir da eventuell weiterhelfen?
Schonmal recht vielen Dank.
LG Dominik

Verfasst: 18.11.2006 17:38
von Ambience
bastel dir eine schleife, die immer eine zeile hohlt und dann noch eine zahl hochzählen bis 15 z.B und dann abrechen und ausgeben. mom ich hab da irgendwo noch ein script meines chattes.

hier:

Code: Alles auswählen

function get_chat_message($room_id)
  {
    $this->room_id = $room_id;
    $this->delete_chat_message($this->room_id);
    $this->fopen_file = file('rooms/' . $this->room_id . '.txt');
    $this->count = count($this->fopen_file);
    
    for ($i = 0; $i < 20; $i++)
    {
      $this->message .= $this->fopen_file[$i]. '<br />';
    }
    
  }
so und die forschleife bricht nach 20 runden ab.

Verfasst: 18.11.2006 19:25
von Domitz
Hi, also ich habs mal eingebaut, aber das bewirkt irgendwie nichts :(

Trotzdem schonmal Dankeschön =)

Verfasst: 18.11.2006 19:32
von Ambience
du sollst auch nicht meinen code nehmen sondern einen eigenen machen. meiner war nur eine inspiration.