[PHP] fread() Problem

bitfighter

Well-known member
20 April 2006
48
0
Hallo,

habe das King Pass *Lite* v. 2.0 installiert und nun zeigt er mir folgenden Fehler:

Warning: fread(): Length parameter must be greater than 0. in /srv/www/htdocs/web67/html/kingpass/modules/misc.php on line 31

Warning: fread(): Length parameter must be greater than 0. in /srv/www/htdocs/web67/html/kingpass/modules/misc.php on line 31


Link: https://www.weltmeisterschaft-online.de/kingpass/index.php

Hier sind die Zeilen 27-39 :
PHP:
// DATEI EINLESEN UND DEN INHALT ZURÜCKGEBEN
function kpl_read_file($FILENAME) {
        if(file_exists($FILENAME)) {
                $FILE_R = fopen($FILENAME, "r");
                $TMP_DATA = fread($FILE_R, filesize($FILENAME));
                fclose($FILE_R);
                return $TMP_DATA;
        } else {
                global $config;
                echo "<b>Fehler:</b> $FILENAME konnte nicht geladen werden!<br>Entweder ist diese Datei nicht auf dem Server vorhanden, oder der Absolute-Pfad ist falsch!<br>Sollte der Fehler erneut auftreten, dann wenden Sie sich an: ".$config['admin_email'];
                exit;
        }
}


Über eure Hilfe wäre ich euch sehr dankbar.

Gruß
bitfighter
 
Sieht so aus, als wäre eine Datei, die du auslesen möchtest, leer.

Um die Meldung zu unterdrücken, ersetze
PHP:
$TMP_DATA = fread($FILE_R, filesize($FILENAME));
durch
PHP:
$FS = filesize($FILENAME); if ($FS>0) {$TMP_DATA = fread($FILE_R, $FS);} else {$TMP_DATA = "";}
oder durch
PHP:
$TMP_DATA = @fread($FILE_R, filesize($FILENAME));
 
Oder noch einfacher:

Diesen ganzen Block:
PHP:
if(file_exists($FILENAME)) {
  $FILE_R = fopen($FILENAME, "r");
  $TMP_DATA = fread($FILE_R, filesize($FILENAME));
  fclose($FILE_R);
  return $TMP_DATA;
}
Durch diesen ersetzen:
PHP:
if (file_exists($FILENAME)) {
  return file_get_contents($FILENAME);
}