Ich weiß nicht; ich muss ein Brett vor dem Kopf haben, denn der automartische Zähler fuktioniert nicht.
Ich mache so eine kleine Unterhaltungecke mit PHP
<?php
#...
#Zahl aktualisieren
$nummer_lesen=fopen("funroom_zahl.txt", "r"); // funroom_zahl.txt ist im ausgangszustand auf 15 gestellt.
$zahl=fgets($nummer_lesen, 10);
$zahl=trim($zahl);
$zahl++; // Dann wird um eins weitergezählt.
$nummer_schreiben=fopen("funroom_zahl.txt", "w"); // Jetzt wird die neue Zahl, die um eins höher als die alte ist geschrieben.
fwrite($nummer_schreiben, $zahl);
#Chatmeldung 'include'dieren
$cont=file_get_contents("funroomlesen.php");
// Hier kommen dann die Fehlermeldungen. Das die wird näturlich nach euerem Wunsch später durch eine vernüpftige Fehlerbehandung ersetzt.
if (($cont=="") || (strlen($cont)<32)) die("Fehler, Datenbank konnte nicht geladen werden.");
if ($fh=fopen("funroomlesen.php","w")) ;else die("Fehler, Datenbank konnte nicht geschrieben werden.");
fputs($fh,str_replace("/* new */","/* new */ include('".$zahl.".php');",$cont)); // Hier wird dann /* new */ durch include(...) ersetzt.
fclose($fh); // Dann wird funroomlesen.php wieder geschlossen.
#Chatmeldungsdatei erstellen
$dateihandle=fopen($zahl.".php", "a"); // Jetzt wird die Meldungsdatei erstellt.
fputs($dateihandle,"<div class='nick'>Chatmeldung wurde im Raum Funroom am ".date("d.m.y")." um ".date("H:i.s")." Uhr von ".$Name." verfasst.</div><div class='meldung'>".$Text."</div>"); // Da muss natürlich Text hinein!^^
fclose($dateihandle); // Und wieder geschlossen
#Zahl aktualisieren
$nummer_lesen=fopen("funroom_loesch.txt", "r"); // funroom_loesch.txt ist im ausgangszustand auf 0 gestellt.
$zahl=fgets($nummer_lesen, 10);
$zahl=trim($zahl);
$zahl++; // Eins höher
$nummer_schreiben=fopen("funroom_loesch.txt", "w"); // Schreiben und ...
fwrite($nummer_schreiben, $zahl); // ... wieder zu!
#'include' der Chatmeldung entfernen
$cont=file_get_contents("funroomlesen.php"); // Open
// Fehlermeldungen. die() wird ersetzt!
if (($cont=="") || (strlen($cont)<32)) die("Fehler, Datenbank konnte nicht geladen werden.");
if ($fh=fopen("funroomlesen.php","w")); else die("Fehler, Datenbank konnte nicht geschrieben werden.");
fputs($fh,str_replace("include('".$zahl.".php');","",$cont)); // include wird entfernt
fclose($fh); // Close
#Datei löschen
unlink($zahl.".php"); // Wenn man schon die include entfernt wird, muss man auch die Datei löschen
/*
TANTE
FUNNY
EINFÜGEN
-
Tante Funny (abs. nicht Fanny) ist ein automartisches Antwortsystem. Es reagiert auf bestimmte Wörter und wird dann als eigene Meldung eingefügt.
*/
#Zahl aktualisieren
if(substr_count($Text,"Funny") || substr_count($Text,"funny") || substr_count($Text,"FUNNY") || substr_count($Text,"Fanny") || substr_count($Text,"fanny") || substr_count($Text,"FANNY")) { // Meldung wird natürlich nur erstellt, wenn man funny/fanny im Text vewendet. Weil Tante Funny reagiert nur, wenn man ihren Namen nennt.
$nummer_lesen=fopen("funroom_loesch.txt", "r");
$zahl=fgets($nummer_lesen, 10);
$zahl=trim($zahl);
$zahl++; // Zahl erhöhen wie beim vohrigem Teil
$nummer_schreiben=fopen("funroom_loesch.txt", "w");
fwrite($nummer_schreiben, $zahl);
#Tante Funny 'include'dieren
$cont=file_get_contents("funroomlesen.php");
if (($cont=="") || (strlen($cont)<32)) die("Fehler, Datenbank konnte nicht geladen werden.");
if ($fh=fopen("funroomlesen.php","w")); else die("Fehler, Datenbank konnte nicht geschrieben werden.");
fputs($fh,str_replace("/* new */","/* new */ include('".$zahl.".php');",$cont)); // include() einfügen
fclose($fh);
#Funnydatei erstellen
$dateihandle=fopen($zahl.".php", "a");
fputs($dateihandle,$Text2);
fclose($dateihandle);
#Zahl aktualisieren
$nummer_lesen=fopen("funroom_loesch.txt", "r");
$zahl=fgets($nummer_lesen, 10);
$zahl=trim($zahl);
$zahl++; // Um eines erhöhen
$nummer_schreiben=fopen("funroom_loesch.txt", "w");
fwrite($nummer_schreiben, $zahl);
#'include' von Tante Funny entfernen
$cont=file_get_contents("funroomlesen.php");
if (($cont=="") || (strlen($cont)<32)) die("Fehler, Datenbank konnte nicht geladen werden.");
if ($fh=fopen("funroomlesen.php","w")); else die("Fehler, Datenbank konnte nicht geschrieben werden.");
fputs($fh,str_replace("include('".$zahl.".php');","",$cont)); // include() löschen!
fclose($fh);
#Datei löschen
unlink($zahl.".php"); // löschen
}
#...
?>
Mir tut es leid, dass ich so viel Quelltext schreiben musste, aber ich habe keine Anhung woran es liegen könnte.
Bei Zähler gibt es aber ein Problem:
Nachdem ich eine Meldung verfasst habe bei FUNROOM, verfasst habe, sieht der Lösch-Zähler ganz normal aus. Nur bei funroom_zahl.txt steht nach einer Meldung mit Funny-Antwort (= 2 Meldungen) nicht 17, sondern nur 16. Aber das ist nicht alles. Bei Screenshot gibt es auch merkwürdigkeiten:
Hier ist noch der Code von der Seite, auf die geschrieben wird und von der der Screenshot ist:
...ht:50px;
}
</style>
#So sieht der Code aus:
<?php
#include zum eintragedings
/* new */ include('3.php'); include('17.php'); include('16.php');
include('15.php');
include('14.php');
include('13.php');
include('12.php');
include('11.php');
include('10.php');
include('9.php');
include('8.php');
include('7.php');
include('6.php');
include('5.php');
include('3.php');
?>
#Der Code sollte so aussehen:
<?php
#include zum eintragedings
/* new */ include('17.php'); include('16.php');
include('15.php');
include('14.php');
include('13.php');
include('12.php');
include('11.php');
include('10.php');
include('9.php');
include('8.php');
include('7.php');
include('6.php');
include('5.php');
include('3.php');
?>
~~~... und die Tante Funny Meldung sollte nicht unter 3.php sondern unter der aktuellen Zählerzahl gespeichert werden.
Ich habe mich bemüht dieses komplexe Problem so verständlich wie möglich zu verfassen. Falls mir das bei manchen stellen nicht gelungen ist, dann fragt nach.
lgrfc