Page 1 of 1
Fehlermeldung: cannot redeclare readfile()
Posted: Wed Feb 11, 2009 9:07 am
by kohola
Hi all
nachdem mein Forum jetz eine Weile unberührt geblieben ist (keine Änderungen auch keine Seitenanlage) habe ich gestern festgestellt, daß die SEite nicht aufrufbar ist. Nachdem der Provider die Ausgabe von Fehlermeldungen aktiviert hat, bekam ich folgende Fehlermeldung:
Fatal error: Cannot redeclare readfile() in /home/vol4/byethost4.com/b4_2705973/htdocs/lib/misc.functions.php on line 1093
Die Antwort des Providers war: "Please fix this to fix your site" -->(sehr hilfreich)
Hoffe ihr könnt mir infos zu dieser Fehlermeldung geben, keine ahnung warum readfile() nicht mehr verstanden wird.
lg und dankeschön
kohola
Re: Fehlermeldung: cannot redeclare readfile()
Posted: Wed Feb 11, 2009 9:47 am
by nockenfell
kohola wrote:
Fatal error: Cannot redeclare readfile() in /home/vol4/byethost4.com/b4_2705973/htdocs/lib/misc.functions.php on line 1093
Tönt danach das du irgendwo die Funktion readfile() doppelt drin hast. Du kannst mit
Code: Select all
if (!function_exists('readfile') {
function readfile() {
-> inhalt Funktion
}
}
Infos dazu:
http://ch.php.net/function_exists
Die Fehlermeldung verhindern. Dies musst du auf ab der Zeile 1039 der datei "./libs/misc.functions.php" machen.
Eine Garantie das es danach läuft gibt es nicht. Wenn die bereits deklarierte Funktion anders funktioniert das die Funktion die hier den Fehler verursacht, hast du ein grösseres Problem. In diesem Fall müsste ich mehr Infos zum Forum und zur Installation des Forums selber haben.
Re: Fehlermeldung: cannot redeclare readfile()
Posted: Wed Feb 11, 2009 10:56 am
by kohola
Hallo Nockenfell
vorab herzlichen Dank für deine rasche Antwort.
In der misc.functions wird diese Funktion ab Zeile 1091 so aufgerufen
Code: Select all
if(!function_exists("readfile"))
{
function readfile($filename)
{
@ob_start();
echo file_get_contents($filename);
$result = @ob_get_contents();
@ob_end_clean();
if( !empty($result) ) {
echo $result;
return TRUE;
}
return FALSE;
}
}
also es wird bereits geprüft ob diese Funktion vorhanden ist und ich hab das File auch durchsucht und sie kein zweites Mal gefunden.
____________________________________________________
ich habe jetzt eben festgestellt, daß die Seite aufgerufen werden kann. Frag mich einer warum!!
ABER vielen lieben Dank
kohola
Re: Fehlermeldung: cannot redeclare readfile()
Posted: Wed Feb 11, 2009 6:48 pm
by cyberman
Evtl. auch mal checken, ob die Seite gehackt wurde - bei readfile() gehen bei mir immer alle Alarmglocken an!
Re: Fehlermeldung: cannot redeclare readfile()
Posted: Wed Feb 11, 2009 9:24 pm
by NaN
Wenn die Fehlermeldung lautet "Cannot redeclare... ", dann steht meistens auch dabei wo diese Funktion vorher deklariert wurde. ("previously declared in ...").
In folgenden Dateien wird diese Funktion deklariert bzw. aufgerufen (standard CMSms Installation):
/admin/loginstyle.php:
Line 30 : readfile(dirname(__FILE__)."/themes/$theme/css/style.css");
Line 34 : readfile(dirname(__FILE__)."/themes/default/css/style.css");
/admin/style.php:
Line 28 : readfile(dirname(__FILE__)."/themes/".$theme."/css/".$style);
Line 32 : readfile(dirname(__FILE__)."/themes/default/css/".$style);
/admin/tab.php:
Line 8 : readfile(dirname(__FILE__)."/themes/$theme/tab.css");
Line 10 : readfile(dirname(__FILE__)."/themes/default/tab.css");
/lib/misc.functions.php:
Line 1137 : if(!function_exists("readfile"))
Line 1139 : function readfile($filename)
/modules/MenuManager/action.importtemplate.php:
Line 27 : @readfile(dirname(__FILE__) . '/templates/' . $params['tplname']);
In allen anderen Dateien oder Zeilen (evtl. einige Module/Plugins ausgenommen) hat diese Funktion nichts zu suchen.
Um sicher zu gehen, dass alles mit rechten Dingen zugeht, würde ich den gesamten Webspace mal in ein lokales Verzeichnis herunterladen und mit einem Editor nach "readfile" in allen Dateien dieses Verzeichnisses suchen (Notepad++, jEdit, Dreamweaver o.ä. Editoren bieten da eine Funktion für).
Und dann mal mit meiner Liste hier vergleichen.
Re: Fehlermeldung: cannot redeclare readfile()
Posted: Wed Feb 18, 2009 12:09 am
by Edi
Ich hatte dasselbe Problem.
Der Grund dafür war, dass auf dem Server die Funktion readfile() aus Sicherheitsgründen deaktiviert wurde.
Re: Fehlermeldung: cannot redeclare readfile()
Posted: Thu Feb 19, 2009 1:00 am
by NaN
Konnte man das mit .htaccess umgehen oder hat Dein Provider die Einstellung selber ändern müssen?