# Warning: fread(): Length parameter must be greater than 0



## YU-Koda (29. Januar 2005)

Kann wer was mit dieser Meldung anfangen?

Warning: fread(): Length parameter must be greater than 0. in /var/kunden/xxx/xxx/portal/quiz/quiz.php on line 113

Hierbei handelt es sich um ein Quizscript aus dem Hause Artmedic. Ich hab da mal in Google gesucht, stosse aber nur überwiegend auf Seiten, die das gleiche Problem haben. Kennt wer das Problem und weiss, wie man das beheben kann? In der Zeile 112-114 steht das hier in der Datei


```
$correct = fopen($correctfile, "r");
$correctanswer = fread($correct,filesize($correctfile));
fclose($correct);
```


----------



## Sven Petruschke (29. Januar 2005)

Ersetze mal den gesamten Konstrukt durch: 
	
	
	



```
$correctanswer = file_get_contents($correctfile);
```
Sven


----------



## YU-Koda (29. Januar 2005)

Ich danke Dir. Genau daran lag es


----------



## oentinger (11. Februar 2005)

@ _Sven Petruschke_

_Kannst Du mir vielleicht auch helfen?_
_Ich benutze eine Chat-Komponente (SimpleChat 1.3) und bekomme folgenden Fehler angezeigt:_

*Warning*: fread(): Length parameter must be greater than 0. in */kunden/85768_45772/webseiten/components/com_simplechat/sc/incl/hdr.inc* on line *6*

*hier die hdr.inc*


```
<?php $datetime=gmdate('M j, G:i',time()+0*3600);$pp=time();$log="data/log";$usr="data/usr";set_magic_quotes_runtime(0);
$dbl='a';function ccl(){global $dbl;if($dbl=='a'){$dbl='b';}else{$dbl='a';}}
 
function opl(){global $log;$fd=fopen($log,"r") or die('...');$fs=fread($fd,filesize($log));fclose($fd);return $fs;}
function wrl($n){global $log;$fd=fopen($log,"w") or die('...');$fout=fwrite($fd,$n);fclose($fd);}
function opu(){global $usr;$fd=fopen($usr,"r") or die('...');$fs=fread($fd,filesize($usr));fclose($fd);return $fs;}
function wru($n){global $usr;$fd=fopen($usr,"w") or die('...');$fout=fwrite($fd,$n);fclose($fd);}
function sdd($q){die("<html><head><script type=\"text/javascript\">window.location='$q';</script><title>...</title></head><body></body></html>");}
function duu($r){$users='';$fy=opu();$fy=explode("\n",$fy);$fz=array();$j=0;for($i=0;$i<count($fy);$i++){if(isset($fy[$i])&&strlen($fy[$i])>4){$we=explode(":|:",$fy[$i]);$fz[$j]="$we[2]:|:$we[3]:|:$we[1]";$j++;}}rsort($fz);for($i=0;$i<count($fz);$i++){$wg=explode(":|:",$fz[$i]);$users="<img src=\"pics/$wg[1].gif\" width=\"11\" height=\"14\" alt=\"\" title=\"$wg[2]\"> <b>$wg[0]</b>$r$users";}print $users;}
function htmsp($w){$w=str_replace("<","&lt;",$w);$w=str_replace(">","&gt;",$w);$w=str_replace("\r\n"," ",$w);$w=str_replace("\r","",$w);$w=str_replace("\n"," ",$w);return $w;}
function htmse($w){$w=htmsp($w);$w=str_replace(":|:"," ",$w);$w=str_replace("[ url="file:///'&quot;,&quot;'&quot;,$w);$w=str_replace(&quot;/&quot;&quot;,&quot;&quot;&quot;,$w);$w=str_replace(&quot;//&quot;,&quot;/&quot;,$w);return"]\\'","'",$w);$w=str_replace("\\\"","&quot;",$w);$w=str_replace("\\\\","\\",$w);return[ /url] $w;}
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
if(isset($nyc)){setcookie('myc',$nyc,time()+86400*100,'/');}elseif(!isset($myc) && !isset($nyc)){setcookie('myc','20',time()+86400*100,'/');$nyc='20';}else{$nyc=$myc;}
if(isset($wik)){setcookie('bik',$wik,time()+86400*100,'/');}elseif(!isset($bik) && !isset($wik)){setcookie('bik','1',time()+86400*100,'/');$wik='1';}else{$wik=$bik;}
if(!is_file($log)||!is_writeable($log)||!is_file($usr)||!is_writeable($usr)){
$fd=fopen($log,"w+") or die('<div align="center" style="color:red;background-color:white"><h3><br><br>WARNING! Create an <u>empty</u> directory /<i style="color:green">data</i> and CHMOD it to 777!</h3></div>');
$fout=fwrite($fd,"");fclose($fd);$fd=fopen($usr,"w+") or die('...');$fout=fwrite($fd,"");fclose($fd);}
include "lang/lang-en.inc";
?>
```
 


Danke für Deine Mühe

Greetings
Oliver Entinger


----------



## Sven Petruschke (11. Februar 2005)

Ist eigentlich dasselbe Problem. Die Datei ist wahrscheinlich leer, so dass beim Ermitteln der Dateigröße 0 zurückgegeben wird, was wiederum die Funktion [phpf]fread[/phpf] nicht mag.

Versuch's mal mit folgendem:

```
<?php
  $datetime=gmdate('M j, G:i',time()+0*3600);
  $pp=time();
  $log="data/log";
  $usr="data/usr";
  set_magic_quotes_runtime(0);
  $dbl='a';

  function ccl(){global $dbl;if($dbl=='a'){$dbl='b';}else{$dbl='a';}}
  function opl(){global $log; return file_get_contents($log);}
  function wrl($n){global $log;$fd=fopen($log,"w") or die('...');$fout=fwrite($fd,$n);fclose($fd);}
  function opu(){global $usr; return file_get_contents($usr);}
  function wru($n){global $usr;$fd=fopen($usr,"w") or die('...');$fout=fwrite($fd,$n);fclose($fd);}
  function sdd($q){die("<html><head><script type=\"text/javascript\">window.location='$q';</script><title>...</title></head><body></body></html>");}
  function duu($r){$users='';$fy=opu();$fy=explode("\n",$fy);$fz=array();$j=0;for($i=0;$i<count($fy);$i++){if(isset($fy[$i])&&strlen($fy[$i])>4){$we=explode(":|:",$fy[$i]);$fz[$j]="$we[2]:|:$we[3]:|:$we[1]";$j++;}}rsort($fz);for($i=0;$i<count($fz);$i++){$wg=explode(":|:",$fz[$i]);$users="<img src=\"pics/$wg[1].gif\" width=\"11\" height=\"14\" alt=\"\" title=\"$wg[2]\"> <b>$wg[0]</b>$r$users";}print $users;}
  function htmsp($w){$w=str_replace("<","&lt;",$w);$w=str_replace(">","&gt;",$w);$w=str_replace("\r\n"," ",$w);$w=str_replace("\r","",$w);$w=str_replace("\n"," ",$w);return $w;}
  function htmse($w){$w=htmsp($w);$w=str_replace(":|:"," ",$w);$w=str_replace("\\'","'",$w);$w=str_replace("\\\"","&quot;",$w);$w=str_replace("\\\\","\\",$w);return $w;}

  header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  header("Cache-Control: no-cache, must-revalidate");
  header("Pragma: no-cache");

  if(isset($nyc)){setcookie('myc',$nyc,time()+86400*100,'/');}elseif(!isset($myc) && !isset($nyc)){setcookie('myc','20',time()+86400*100,'/');$nyc='20';}else{$nyc=$myc;}
  if(isset($wik)){setcookie('bik',$wik,time()+86400*100,'/');}elseif(!isset($bik) && !isset($wik)){setcookie('bik','1',time()+86400*100,'/');$wik='1';}else{$wik=$bik;}
  if(!is_file($log)||!is_writeable($log)||!is_file($usr)||!is_writeable($usr)){
  $fd=fopen($log,"w+") or die('<div align="center" style="color:red;background-color:white"><h3><br><br>WARNING! Create an <u>empty</u> directory /<i style="color:green">data</i> and CHMOD it to 777!</h3></div>');
  $fout=fwrite($fd,"");fclose($fd);$fd=fopen($usr,"w+") or die('...');$fout=fwrite($fd,"");fclose($fd);}
  include "lang/lang-en.inc";
?>
```

Sven


----------



## oentinger (11. Februar 2005)

BIG THX AN SVEN, das war die Lösung

MfG

Oliver Entinger


----------



## ThommyXXL (9. November 2005)

Habe auch das Problem und bekomme es einfach nicht hin...

Könntet ihr mir mal drüberschauen was am Code geändert werden müsste, damit dieser Fehler: "Warning: fread(): Length parameter must be greater than 0" nicht mehr kommt.


```
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;
	}
}
```

Danke!


----------

