Error Reporting - undefined index / undefined variable

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Error Reporting - undefined index / undefined variable

Beitrag von mgutt »

Nachdem diverse Seite extrem hohe Ladezeiten aufwiesen, habe ich mich mal ran gemacht diese genauer zur analysieren und tatsächlich sind genau diese Seiten mit "undefined index" Fehlern geschmückt, nachdem ich mit Error Reporting alle Fehler anzeigen lies.

Jetzt eine Verständnisfrage dazu.

Ein Beispiel:
Ich habe den Select Language Mod installiert. In der common.php ist folgende Zeile:

Code: Alles auswählen

$language = ( isset($HTTP_POST_VARS['language']) ) ? $HTTP_POST_VARS['language'] : $HTTP_GET_VARS['language'];
Dabei ist der index "language" aber undefiniert. Jetzt ist die Frage was ich da machen könnte. Einfach den Fehler per @ deaktivieren?

Wäre das die richtige Fehlerbehebung?

Zweites Beispiel:
Ebenfalls SLM und die common.php:

Code: Alles auswählen

if ($language) 
{ 
	$language=trim(strip_tags($language));
	$board_config['default_lang'] = $language; 
	setcookie($board_config['cookie_name'].'_default_lang',$language , (time()+21600), $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']); 
} else 
{
	if (isset($HTTP_COOKIE_VARS[$board_config['cookie_name'].'_default_lang']) ) 
	{
	   $board_config['default_lang']=$HTTP_COOKIE_VARS[$board_config['cookie_name'].'_default_lang']; 
	} else
	{
		$dir = opendir($phpbb_root_path.'language');
		$lang_d = array();
		while (false !== ($file = readdir($dir)))
		{
			if ( ereg("^lang_", $file) && !is_file($dirname . "/" . $file) && !is_link($dirname . "/" . $file) )
Hier verursacht die leere variable $dirname den Fehler.

Also habe ich das so angepasst:

Code: Alles auswählen

if ($language) 
{ 
	$language=trim(strip_tags($language));
	$board_config['default_lang'] = $language; 
	setcookie($board_config['cookie_name'].'_default_lang',$language , (time()+21600), $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']); 
} else 
{
	if (isset($HTTP_COOKIE_VARS[$board_config['cookie_name'].'_default_lang']) ) 
	{
	   $board_config['default_lang']=$HTTP_COOKIE_VARS[$board_config['cookie_name'].'_default_lang']; 
	} else
	{
		$dir = opendir($phpbb_root_path.'language');
		$lang_d = array();
		$dirname= "language";
		while (false !== ($file = readdir($dir)))
		{
			if ( ereg("^lang_", $file) && !is_file($dirname . "/" . $file) && !is_link($dirname . "/" . $file) )

Error Reporting aktivieren:
Wer Error Reporting aktivieren möchte kann das wie folgt machen:

common.php:

Code: Alles auswählen

error_reporting  (E_ERROR | E_WARNING | E_PARSE); // This will NOT report uninitialized variables
ändern in:

Code: Alles auswählen

error_reporting  (E_ALL); // This will report all errors
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
alcaeus
Mitglied
Beiträge: 167
Registriert: 10.10.2004 16:14
Wohnort: Dietersheim b. München
Kontaktdaten:

Re: Error Reporting - undefined index / undefined variable

Beitrag von alcaeus »

Moin,

dieser Code:
mgutt hat geschrieben:

Code: Alles auswählen

$language = ( isset($HTTP_POST_VARS['language']) ) ? $HTTP_POST_VARS['language'] : $HTTP_GET_VARS['language'];

Code: Alles auswählen

$language = ( isset($HTTP_POST_VARS['language']) ) ? $HTTP_POST_VARS['language'] : (( isset($HTTP_GET_VARS['language']) ) ? $HTTP_GET_VARS['language'] : '');
Der Code prueft einfach, ob per Post was gekommen ist, wenn nicht dann wird einfach Get verwendet. Allerdings muss man da nochmal mit isset arbeiten, der letzte Wert ist dann der Default-Wert, der verwendet wird wenn nichts uebergeben wurde.

Greetz
alcaeus
Ein Portal für Informatik-Studenten: http://www.infler.de
Meine Homepage: http://www.alcaeus.org
Letzter Artikel: Working with phpBB again
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

ahh ja logisch. fehlt die "leere" zuweisung. hätte ich auch drauf kommen können.
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
rabbit
Ehemaliger Übersetzer
Beiträge: 4199
Registriert: 14.06.2003 22:09
Wohnort: Hildesheim
Kontaktdaten:

Beitrag von rabbit »

hmmm, ist es möglich, dass man keinerlei fehler hat? mit error reporting ON bekomme ich dennoch keine meldungen, egal bei welchen seiten. hab' besonders die seiten geprüft, die durch MODs verändert oder hinzugekommen sind.
Offizieller Übersetzer des Categories Hierarchy MOD 2.1.x
Deutscher UserGuide für den Categories Hierarchy MOD v2.1.4
Empfohlener Hoster: All-Inkl.com
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Ich glaube die Fehler sind erst so massig geworden, seit dem ich diesen Extended Template Mod von ptirhiik installiert habe.

Kann aber auch schon vorher gewesen sein, weil ich es vorher nie getestet habe.

Nach der Installation waren nämlich auch Fehler aufgetaucht, wie doppelt genutzte Variablen von verschiedenen Mods in vollkommen unabhängigen Dateien. Liegt wahrscheinlich am Cachen der Seiten.

Dennoch ist ein fehlerfreier Code sicherlich lobenswert. Normalerweise denke ich schon, dass viele Mods Fehler auslösen müssten.

Der Album Mod von Smartor z.B. hat viele Fehler wenn man auch die Categories installiert hat. Der Select Language Mod hat Fehler und noch einige andere Mods mehr.
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
alcaeus
Mitglied
Beiträge: 167
Registriert: 10.10.2004 16:14
Wohnort: Dietersheim b. München
Kontaktdaten:

Beitrag von alcaeus »

@Rabbit: du musst error_reporting(E_ALL) einschalten, dann siehst du auch Hinweise zu nicht initialisierten Variablen. Ich waere damit aber vorsichtig, das ACP kannst du mit der Einstellung nicht mehr verwenden :lol:

Greetz
alcaeus
Ein Portal für Informatik-Studenten: http://www.infler.de
Meine Homepage: http://www.alcaeus.org
Letzter Artikel: Working with phpBB again
Benutzeravatar
rabbit
Ehemaliger Übersetzer
Beiträge: 4199
Registriert: 14.06.2003 22:09
Wohnort: Hildesheim
Kontaktdaten:

Beitrag von rabbit »

@ alcaeus: genau das habe ich getan auf meinem test env und bekomme zum einen keine fehlermeldungen und zum anderen komme ich weiterhin ins acp... :-?

extended template nutze ich nicht, wohl aber extreme styles und mein board ist ziemlich stark geMODded.
Offizieller Übersetzer des Categories Hierarchy MOD 2.1.x
Deutscher UserGuide für den Categories Hierarchy MOD v2.1.4
Empfohlener Hoster: All-Inkl.com
Benutzeravatar
alcaeus
Mitglied
Beiträge: 167
Registriert: 10.10.2004 16:14
Wohnort: Dietersheim b. München
Kontaktdaten:

Beitrag von alcaeus »

rabbit hat geschrieben:zum anderen komme ich weiterhin ins acp... :-?
Moooment. Ich hab nicht gesagt, dass man nicht mehr ins ACP kommt. Ich hab nur gesagt, dass man es nicht mehr ordentlich verwenden kann ;)
rabbit hat geschrieben:extended template nutze ich nicht, wohl aber extreme styles und mein board ist ziemlich stark geMODded.
Hmm...dann sollten erst recht Meldungen kommen. Bei einem Vanilla-phpBB kommt schon auf dem Index eine, wenn du auch nur einem Forum keine besonderen Berechtigungen (Private) gegeben hast.

Greetz
alcaeus
Ein Portal für Informatik-Studenten: http://www.infler.de
Meine Homepage: http://www.alcaeus.org
Letzter Artikel: Working with phpBB again
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Gabs beim Error Reporting nicht noch eine "Master" Einstellung auf dem Server?
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
rabbit
Ehemaliger Übersetzer
Beiträge: 4199
Registriert: 14.06.2003 22:09
Wohnort: Hildesheim
Kontaktdaten:

Beitrag von rabbit »

mgutt hat geschrieben:Gabs beim Error Reporting nicht noch eine "Master" Einstellung auf dem Server?
wenn, dann her damit! :) auf meinem test env kann ich das ja umstellen, sofern ich weiß, wie...

wie gesagt, bei mir sind wirklich keinerlei meldungen zu verzeichnen.
Offizieller Übersetzer des Categories Hierarchy MOD 2.1.x
Deutscher UserGuide für den Categories Hierarchy MOD v2.1.4
Empfohlener Hoster: All-Inkl.com
Antworten

Zurück zu „Coding & Technik“