Gzip und Zlib

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
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Gzip und Zlib

Beitrag von Gumfuzi »

Hallo Leute,

bin aufgrund einer Fehlermeldung (die nur beim Verfassen eines KB-Artikels kommt, sonst nirgends) auf folgenden KB-Eintrag gestoßen:
http://www.phpbb.com/kb/article.php?article_id=130

Die Fehlermeldung:
Warning: ob_start(): output handler 'ob_gzhandler' cannot be used twice in /www/htdocs/xxxxx/phpBB2/includes/page_header.php on line 45
Hier der Bereich der page_header.php:

Code: Alles auswählen

//
// gzip_compression
//
$do_gzip_compress = FALSE;
if ( $board_config['gzip_compress'] )
{
	$phpver = phpversion();

	$useragent = (isset($HTTP_SERVER_VARS['HTTP_USER_AGENT'])) ? $HTTP_SERVER_VARS['HTTP_USER_AGENT'] : getenv('HTTP_USER_AGENT');

	if ( $phpver >= '4.0.4pl1' && ( strstr($useragent,'compatible') || strstr($useragent,'Gecko') ) )
	{
		if ( extension_loaded('zlib') )
		{
			ob_start('ob_gzhandler');
		}
	}
	else if ( $phpver > '4.0' )
	{
		if ( strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip') )
		{
			if ( extension_loaded('zlib') )
			{
				$do_gzip_compress = TRUE;
				ob_start();
				ob_implicit_flush(0);

				header('Content-Encoding: gzip');
			}
		}
	}
}
Die o.a. Fix hilft bei mir nix. Habe mal den Hoster angeschrieben (früher funzte die KB ja auch)

Wenn ich nur das Zlib (das auf dem Server aktiviert ist) laufen lasse, ohne Gzip, wird dann trotzdem in etwas soviel komprimiert als wenn ich beides laufen lasse? Bringt das überhaupt etwas, wenn ich beides laufen lasse?
Du kannst niemals alle mit deinem Tun begeistern. Selbst wenn du über's Wasser laufen kannst, kommt einer daher und fragt, ob du zu blöd zum Schwimmen bist.
https://www.deskmodder.de
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

Also lt. Hoster liegts nicht an dem Server...

Was kann ich da noch tun?
Du kannst niemals alle mit deinem Tun begeistern. Selbst wenn du über's Wasser laufen kannst, kommt einer daher und fragt, ob du zu blöd zum Schwimmen bist.
https://www.deskmodder.de
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Verlinke mal Deine page_header.php, da muss irgendwo der Wurm drin sein.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

Hi!

Danke, daß Du Dir das ansiehst. Wie gesagt, die Meldung kommt nur, wenn ich einen neuen Eintrag in der Knowledge Base erstellen will. Gzip habe ich auch testweise deaktiviert, da kamen dann drei Zeilen mit Fehlermeldungen.

Hier die Dateien:
http://www.deskmodder.de/phpBB2/diverse ... header.txt
http://www.deskmodder.de/phpBB2/diverses/kb_add.txt
http://www.deskmodder.de/phpBB2/diverses/kb_header.txt

Danke vielmals im Voraus!
Du kannst niemals alle mit deinem Tun begeistern. Selbst wenn du über's Wasser laufen kannst, kommt einer daher und fragt, ob du zu blöd zum Schwimmen bist.
https://www.deskmodder.de
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Hmm, das wars nicht. Aus der Fehlermeldung geht hervor ("cannot be used twice") das ob_start() doppelt aufgerufen wird. Allerdings finde ich den zweiten Aufruf nicht.

Jetzt ist das ganze aber auch nur eine Warning.

Von daher würde ich vorschlagen, Warnings zu unterdrücken. Schau dazu in die common.php, in Zeile 36 und nimm das E_WARNING aus dem error_reporting()-Aufruf:

Code: Alles auswählen

error_reporting  (E_ERROR | E_PARSE);
Tjoa, und dann solltest Du in allen PHP-Dateien, die für die Knowledge-Base geändert oder hinzugefügt wurden, nach "ob_start" bzw "ob_gzhandler" durchsuchen. Eigentlich dürfte man diesen Aufruf nur in der page_header.php finden. Sollte das woanders auftauchen, dann verlinke die Datei hier, dann sehen wir weiter.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

OK, ich habe mal die Dateien durchsucht:
ob_start:
- admin_db_maintenance.php (wird nie aufgerufen)
- page_header_admin.php (wird nur im ACp aufgerufen)
- pager_header.php (2x, aber durch die if-Abfrage nie zusammen ausgeführt)

ob_gzhandler:
- page_header_admin
- page_header

Darum dachte ich zuerrst, es liegt am Server, aber all-inkl. sagte mir, daß es nicht daran liegt.

BTW: kann es sein, daß durch den Fehler Teile der Seite nicht angezeigt werden? (beim Beitragschreiben in der KB sieht man nur mehr die Smilies auf der ganzen Breite und nicht mehr die Textbox, etc.) - habe nur den Smilies-Cat.Mod eingebaut, der allerdings nicht die KB-Dateien veränderte. Und lt. Template müsste die gezeigte Seite anders aussehen...
Du kannst niemals alle mit deinem Tun begeistern. Selbst wenn du über's Wasser laufen kannst, kommt einer daher und fragt, ob du zu blöd zum Schwimmen bist.
https://www.deskmodder.de
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Kann schon sein, das wir es hier mir einem Verschlucker zu tun haben. Hast Du das error_reporting mal geändert?
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Vielleicht wird page_header.php aus irgendeinem Grund zweimal eingebunden? Versuch mal, dort

Code: Alles auswählen

print_r(debug_backtrace());
einzufügen, dann sollte dir ein Stracktrace angezeigt werden (also welche Funktion von wo aufgerufen wurde).
KB:knigge
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

Hi,

das mit dem Error Reporting habe ich geändert: die Meldung ist weg, die Seite sieht aber natürlich gleich aus (nur die Smilies zu sehen, keine Textbox, etc.)

@Pyramide:
werde ich am Abend gleich probieren, wenn ich wieder zuhause bin.
Sehen den Report dann alle User? Wenn ja, dann teste ich das lieber auf meinem Testfroum (wo die Dateien die gleichen sind und wo ich das Prob auch habe).
Den dann kommenden Report werde ich hier dann posten.
Du kannst niemals alle mit deinem Tun begeistern. Selbst wenn du über's Wasser laufen kannst, kommt einer daher und fragt, ob du zu blöd zum Schwimmen bist.
https://www.deskmodder.de
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

@Pyramide:
habe das eingefügt, die Meldung oberhalb des Headers:
Array ( [0] => Array ( [file] => /www/htdocs/dmtest/phpBB2/includes/kb_add.php [line] => 36 [function] => include ) [1] => Array ( [file] => /www/htdocs/dmtest/phpBB2/kb.php [line] => 164 [args] => Array ( [0] => /www/htdocs/dmtest/phpBB2/includes/kb_add.php ) [function] => include ) )
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/dmtest/phpBB2/includes/page_header.php:30) in /www/htdocs/dmtest/phpBB2/includes/page_header.php on line 618

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/dmtest/phpBB2/includes/page_header.php:30) in /www/htdocs/dmtest/phpBB2/includes/page_header.php on line 620

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/dmtest/phpBB2/includes/page_header.php:30) in /www/htdocs/dmtest/phpBB2/includes/page_header.php on line 621
und unter dem Header:
Array ( [0] => Array ( [file] => /www/htdocs/dmtest/phpBB2/includes/functions_post.php [line] => 918 [function] => include ) [1] => Array ( [file] => /www/htdocs/dmtest/phpBB2/includes/kb_add.php [line] => 77 [function] => generate_smilies ) [2] => Array ( [file] => /www/htdocs/dmtest/phpBB2/kb.php [line] => 164 [args] => Array ( [0] => /www/htdocs/dmtest/phpBB2/includes/kb_add.php ) [function] => include ) )
Warning: ob_start(): output handler 'ob_gzhandler' cannot be used twice in /www/htdocs/dmtest/phpBB2/includes/page_header.php on line 45

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/dmtest/phpBB2/includes/page_header.php:30) in /www/htdocs/dmtest/phpBB2/includes/page_header.php on line 618

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/dmtest/phpBB2/includes/page_header.php:30) in /www/htdocs/dmtest/phpBB2/includes/page_header.php on line 620

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/dmtest/phpBB2/includes/page_header.php:30) in /www/htdocs/dmtest/phpBB2/includes/page_header.php on line 621
da steht nur "Function", aber nicht, welche Funktion das ist, oder bin ich blind?
Du kannst niemals alle mit deinem Tun begeistern. Selbst wenn du über's Wasser laufen kannst, kommt einer daher und fragt, ob du zu blöd zum Schwimmen bist.
https://www.deskmodder.de
Antworten

Zurück zu „Coding & Technik“