Warning: filesize() [function.filesize]: stat failed for Resource id #9

Major Gorth

Mitglied
Hallo.

Ich entwickle derzeit an einem Chat und überarbeite grade die Kernklasse.
Dabei stellt sich mir gerade ein Problem im Konstruktor in den Weg:

Warning: filesize() [function.filesize]: stat failed for Resource id #9 ... on line 39.

Der Konstruktor:

PHP:
    public function __construct()
    {
        self::initTPL();
        self::initDB();
        self::initRoom();
        self::initUser();
        $this->users=self::getDBObj()->fetchUsers();
        $this->languages=glob('*.lng');

        foreach($this->languages as $filename)
        {
            $fp=fopen($filename,'r+');
            $contents=fread($fp,filesize($fp));
            $this->language=fread($fp,2);
            while(!feof($fp))
            {
                preg_match_all('error_',$contents,$this->errorMessages[$this->language]);
                preg_match_all('info_',$contents,$this->infoMessages[$this->language]);
            }
        }
        $settingsFile=fopen('g7chat.conf','r+');
        $this->settings=fread($settingsFile,filesize($settingsFile));
    }

Wo liegt das Problem?
 
[phpf]filesize[/phpf] erwartet einen Pfad zur Datei und keinen Dateihandle von [phpf]fopen[/phpf].
 
Vielen Dank. :D

Mal OffTopic:
Parse error: syntax error, unexpected T_VARIABLE in [...] on line 18.

Betroffene Datei:

PHP:
<?php
require_once('../global.php');
class Database
{
    private $connection;
    private $DB;
    private $queryID;
    public function __construct($dbServer,$dbUser,$dbPass,$dbName)
    {
        $this->connection=mysql_connect($dbServer,$dbUser,$dbPass);
        $this->DB=mysql_select_db($dbName,$this->connection);
    }
    public function sendQuery($query)
    {
        $this->queryID=mysql_query($query);
        return $this->queryID;
    }
    public function fetchArray($resID=$this->queryID)
    {
        return @mysql_fetch_assoc($resID);
    }
    public function fetchUsers()
    {
        $sql="SELECT usernick FROM chat_users";
        $res=$this->sendQuery($sql);
        $usersArray=$this->fetchArray($res);
        for($i=0;$i<sizeof($usersArray);++$i)
        {
            foreach($usersArray as $field=>$val)
            {
                $users[$i]=$val;
            }
        }
        return $users;
    }
}
 
Zuletzt bearbeitet:
Initialwerte können nur Skalare sein und keine Variablen. Deswegen musst du etwas wie Folgendes verwenden:
PHP:
public function fetchArray($resID=null)
{
	if (!is_resource($resID)) {
		$resID = $this->queryID;
	}
	return @mysql_fetch_assoc($resID);
}
 
Zurück