Chatscript geht nicht

T

Thomas Möbius

Guest
Hallo, habe fogendes Chatscript, es wird gesagt, dass ich dafür keine MySQL brauche.
CODE <?php session_start();


  include ("filtering.inc.php"); // Externe Filterfunktion
  include ("tpl.inc.php"); // Template Klasse
  include ("config.php"); // Template Klasse
 
     $name = "chat.csv";  // Filename to write in
  $nameonline = "online.csv";  // Wer ist online?
  $nameu = "gesperrt.csv"; // Blacklist
     $trenner = "¶"; // Trenner für die CSV Datei
  $loechen_nach = $angezeigt_werden * 4;  
             

  $userip = $_SERVER['REMOTE_ADDR'];
  $rnd = rand(1,999999999); // Die Message MUSS EINZIGARTIG sein!!!!!!!!!
  $sek_seit70 = date("U");
  $time = date("H:i");
  $username = $_SESSION["u"];
  $neu = $_POST['neu'];
  $message = $_POST['message'];
  if($_POST['privat']) $privat_name = $_POST['privat_name'];
  else $privat_name = "";
 
 
  // Initialisierung der TPL Klasse
$pet = new pet();
$pet->readFile($template."/schreiben.tpl.htm");
 
// ANFANG ### Textlayout ********************************

// ANFANG ### FILTER HTML ********************************
//$message = strip_tags($message); // No HTML Tags
$username = filtering($username);
$message = filtering($message);
// ENDE ##### FILTER HTML ********************************

// ANFANG ### USERNAME LEER **********************************
if (empty($username)) {
echo "ERROR! Während der Datenübermittlung ist ein Fehler aufgetreten. Versuchen Sie sich erneut anzumelden.<br><a href=\"anmeldung.php\">Zur Anmeldung >></a>";
exit(); }
// ENDE ##### USERNAME LEER **********************************

// ANFANG ### Blcklist Kontrolle ********************************
$datei=fopen($nameu,"r");
 $groesse=filesize($nameu);
$data=fgetcsv($datei,$groesse,";");

while($data!=false){
  if ($data[0] == $userip) {
   print ("<h3>Ihre IP befindet sich in der Blackliste!</h3>Sie sind nicht berechtigt den Chat zu benutzen.");
   exit();
   }
 $data=fgetcsv($datei,$groesse,";");
 }

fclose($datei);
// ENDE ##### Blcklist Kontrolle ********************************
 
 $farbe = strip_tags($_POST['farbe']);
 $fett = strip_tags($_POST['fett']);
 $kursiv = strip_tags($_POST['kursiv']);
 
if ($message != ""){
 if($kursiv and $fett) $message = "<b><i><font color=\"#$farbe\" class=\"normal\">$message</font></i></b>";
 if($kursiv and $fett=="") $message = "<i><font color=\"#$farbe\" class=\"normal\">$message</font></i>";
 if($kursiv=="" and $fett) $message = "<b><font color=\"#$farbe\" class=\"normal\">$message</font></b>";
 if($kursiv=="" and $fett=="") $message = "<font color=\"#$farbe\" class=\"normal\">$message</font>";
}
// ENDE ##### Textlayout ********************************
 
// ANFANG ### WENN NEU
if ($neu == "ja") {

$message = "<font color=\"#999999\"><i>ist zu uns gekommen...</i> :-)</font>"; //Begrüssung für neue User

$farbe="000000"; //ausgang
}
// ENDE ##### WENN NEU

//*********************************************************************************************
//****************** ANFANG Daten in CSV abspeichern ******************************************
//*********************************************************************************************
if ($message != "") {

$bol=file_exists($name);
if($bol){

// ANFANG ### Anzahl der Datensätze bestimmen in CSV und in Löcharray einfügen
 $datensaetze=0;
  $datei=fopen($name,"r");
 $groesse=filesize($name);
$data=fgetcsv($datei,$groesse,$trenner);

while($data!=false){
 $datensaetze++;
 $data=fgetcsv($datei,$groesse,$trenner);
 }
fclose($datei);

$vieviel_muss_leloescht_werden = $datensaetze - $loechen_nach; // Vieviel ist zu Löchen

//print("<br>vieviel_muss_leloescht_werden = ".$vieviel_muss_leloescht_werden);
//print("<br>datensaetze = ".$datensaetze);
//print("<br>loechen_nach = ".$loechen_nach);
//*****************************************************************

if ($vieviel_muss_leloescht_werden > 0) {

  $datei=fopen($name,"r");
 $groesse=filesize($name);
$data=fgetcsv($datei,$groesse,$trenner);

 for($i=0; $i<$vieviel_muss_leloescht_werden; $i++){
  $loeschen[$i]= $data[0].$trenner.$data[1].$trenner.$data[2].$trenner.$data[3].$trenner.$data[4].$trenner.$data[5].$trenner.$data[6]."\n";
  //echo "<br>array [$i] = $loeschen[$i]";
  $data=fgetcsv($datei,$groesse,$trenner);
  }
//print("<br>i (zu löschen) = ".$i);
fclose($datei);  
 }

if ($vieviel_muss_leloescht_werden < 1) $i = 0;
// ENDE ##### Anzahl der Datensätze bestimmen in CSV und in Löcharray einfügen

// ANFANG ### Löschung vornehmen
if ($vieviel_muss_leloescht_werden > 0) {
for($a=0;$a<$i;$a++){
$datei = fopen($name,"r");
$dateigroesse = filesize($name);
$inhalt = fread($datei,$dateigroesse);
fclose($datei);
//echo "<br>gelöscht array [$a]";
$ersetzen=str_replace($loeschen[$a],"",$inhalt); // Die Message MUSS EINZIGARTIG sein!!!!!!!!!

$datei = fopen($name,"w");
fwrite($datei,$ersetzen);
fclose($datei);}
}
// ENDE ###### Löschung vornehmen

}
$dat=fopen($name,"a");
       fwrite($dat,$userip.$trenner.$rnd.$trenner.$username.$trenner.$message.$trenner.$sek_seit70.$trenner.$time.$trenner.$privat_name."\n");
       fclose($dat);
}
//*********************************************************************************************
//****************** ENDE Daten in CSV abspeichern ********************************************
//*********************************************************************************************

//************* Farben Auswahl ******************
foreach($farben_array as $einzelne_farbe){
if ($farbe==$einzelne_farbe) $str="<option value=\"$einzelne_farbe\" style=\"background-color:#$einzelne_farbe; color:#$einzelne_farbe\" selected>    </option>";
else $str="<option value=\"$einzelne_farbe\" style=\"background-color:#$einzelne_farbe; color:#$einzelne_farbe\">    </option>";
$options.=$str."\n";
}

if ($fett) $f="<input name=\"fett\" type=\"checkbox\" class=\"input1\" value=\"true\" checked>";
else $f="<input name=\"fett\" type=\"checkbox\" class=\"input1\" value=\"true\">";

if ($kursiv) $k="<input name=\"kursiv\" type=\"checkbox\" class=\"input1\" value=\"true\" checked>";
else $k="<input name=\"kursiv\" type=\"checkbox\" class=\"input1\" value=\"true\">";

if($privates_erlauben){
if ($_POST['privat']) $privat_ausgabe="(Privat:<input name=\"privat\" type=\"checkbox\" class=\"input1\" value=\"true\" disabled=\"true\" checked>)";
else $privat_ausgabe="(Privat:<input name=\"privat\" type=\"checkbox\" class=\"input1\" value=\"true\" disabled=\"true\">)";
$pet->assign($privat_ausgabe, "privat");}

$pet->assign($options, "options");
$pet->assign($f, "f");
$pet->assign($k, "k");
$pet->parse();
$pet->output();  
?>

Habe nun einfach alle daten hochgeladen, bekomme aber folgende Fehlermeldung, wenn ich einen Nickname eingeben will und auf ok klicke.
Warning: fwrite(): supplied argument is not a valid stream resource in /www/htdocs/hanna/chat/schreiben.php on line 144

Warning: fclose(): supplied argument is not a valid stream resource in /www/htdocs/hanna/chat/schreiben.php on line 145


Was ist das bzw wie kann ich das ändern ?
In den betroffenen Zeilen steht das hier:

CODE        fwrite($dat,$userip.$trenner.$rnd.$trenner.$username.$trenner.$message.$trenner.$sek_seit70.$trenner.$time.$trenner.$privat_name."\n");
       fclose($dat);

Ihr könnt es euch gern persöhnlich unter: http://hanna.strangeclub.de/chat/index.php ansehen.
Das ist natürlich nicht das gesamte Script, aber der Teil, in dem die Lines bemängelt werden.
Für hilfe bin ich immer dankbar

Liebe Grüße
Thomas Möbius
 
Danke, daran hat es gelegen, jetzt funktioniert es. Obwohl ich PHP Anfänger bin, schäme ich etwas, sowas hätte ich wissen müssen (sorry das ich das hier gepostet habe).
Trotzdem ein grosses Dankeschön für die schnelle Antwort
 
Kein Problem, sowas kann man auch leicht mal übersehen.
Und wie heißt es so schön: Wer nicht fragt bleibt dumm
biggrin.gif
 
Ja, den Spruch lernt man in der Sesamstraße (war es in der Sesamstraße?)
biggrin.gif
biggrin.gif
biggrin.gif

Schönen Abend noch
ph34r.gif
 
Zurück
Oben