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
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

[function] => include
Das ist dann wohl der Übeltäter...

Code: Alles auswählen

//post article ----------------------------------------------------------------------------ADD
if ( $HTTP_POST_VARS['article_submit'] )
{

	$page_title = $lang['Add_article'];
	if ( !$is_block )
	{
	   include($phpbb_root_path . 'includes/page_header.'.$phpEx);
	}
Schnapp Dir mal die kb_add.php und ersetzte alle include durch include_once. Und dann schreib ne Mail an den Autor des KB-MODs mit nem netten 'Bug' samt Fix.
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!

das wars leider nicht, aber in der functions_post.php war der header included - nun ist die meldung weg. Danke f�r den Hinweis!!!

Habe aber noch ein Problem:
die Seite zeigt trotzdem nur Smilies auf der ganzen breite und kein Textfeld um Text in die KB einzuf�gen...

Was mir aufgefallen ist:
die Smilies haben unten einen Link "fenster schlie�en" der ja sonst nur kommt, wenn man die Smilies als Extra-Fenster l�dt. Die Seite ist aber eine Seite mit Header und Footer, etc. ( http://www.deskmodder.de/phpBB2/kb.php?mode=add&cat=3 )
Nur sollten die Smilies ja wie bei den normalen Postings nicht extra sein.

ich habe mit die functions_post mal angesehen speziell die Funktion "generate_smilies", welche durch den k�rzlich eingebauten Smilies Category Mod ver�ndert wurde:

Code: Alles auswählen

//
// Fill smiley templates (or just the variables) with smileys

// Either in a window or inline
//
function generate_smilies($mode, $page_id)
{
	global $db, $board_config, $template, $lang, $images, $theme, $phpEx, $phpbb_root_path;
	global $user_ip, $session_length, $starttime;
	global $userdata;

	global $HTTP_GET_VARS;

	$inline_columns = $board_config['smilie_columns'];
	$inline_rows = $board_config['smilie_rows'];
	$window_columns = $board_config['smilie_window_columns'];

	$cat_id = ( !empty($HTTP_POST_VARS['cat']) ) ? intval($HTTP_POST_VARS['cat']) : intval($HTTP_GET_VARS['cat']);

	if (!$cat_id)
	{
		// Select the 1st unhidden category for displaying smilies on the Reply to Post page.
		$sql = "SELECT cat_order
			FROM " . SMILIES_CAT_TABLE . "
			WHERE hidden != 1
			ORDER BY cat_order
			ASC LIMIT 1";
		$result = $db->sql_query($sql);
		$row = $db->sql_fetchrow($result);
		$where = ' WHERE cat_id="' . $row['cat_order'] . '"';
	}
	else
	{
		$where = ' WHERE cat_id=' . $cat_id;
	}

	if ($cat_id || ($mode == 'window'))
	{
		$userdata = session_pagestart($user_ip, $page_id);
		init_userprefs($userdata);

		$gen_simple_header = TRUE;

		$page_title = $lang['Emoticons'] . " - $topic_title";
		include_once($phpbb_root_path . 'includes/page_header.'.$phpEx);

		$template->set_filenames(array(
			'smiliesbody' => 'posting_smilies.tpl')
		);
	}

	$sql = "SELECT emoticon, code, smile_url
		FROM " . SMILIES_TABLE . $where . "
		ORDER BY smilies_order
		ASC";
	if ($result = $db->sql_query($sql))
	{
		$num_smilies = 0;
		$rowset = array();
		while ($row = $db->sql_fetchrow($result))
		{
			if (empty($rowset[$row['smile_url']]))
			{
				$rowset[$row['smile_url']]['code'] = str_replace("'", "\\'", str_replace('\\', '\\\\', $row['code']));
				$rowset[$row['smile_url']]['emoticon'] = $row['emoticon'];
				$num_smilies++;
			}
		}

		if ($num_smilies)
		{
			$smilies_count = ($mode == 'inline') ? min((($inline_columns * $inline_rows) - 1), $num_smilies) : $num_smilies;
			$smilies_split_row = ($mode == 'inline') ? $inline_columns - 1 : $window_columns - 1;

			$s_colspan = 0;
			$row = 0;
			$col = 0;

			while (list($smile_url, $data) = @each($rowset))
			{
				if (!$col)
				{
					$template->assign_block_vars('smilies_row', array());
				}

				$template->assign_block_vars('smilies_row.smilies_col', array(
					'SMILEY_CODE' => $data['code'],
					'SMILEY_IMG' => $board_config['smilies_path'] . '/' . $smile_url,
					'SMILEY_DESC' => $data['emoticon'])
				);

				$s_colspan = max($s_colspan, $col + 1);

				if ($col == $smilies_split_row)
				{
					if ($mode == 'inline' && $row == $inline_rows - 1)
					{
						break;
					}
					$col = 0;
					$row++;
				}
				else
				{
					$col++;
				}
			}


			$template->assign_vars(array(
				'L_EMOTICONS' => $lang['Emoticons'], 
				'L_CLOSE_WINDOW' => $lang['Close_window'], 
				'S_SMILIES_COLSPAN' => $s_colspan)
			);
		}
	}

	if ($cat_id || ($mode == 'window'))
	{
		generate_smiley_categories('window');
		$template->pparse('smiliesbody');

		include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
	}
}
mich wundert dabei folgender Teil, der 2x vorkommt (auf gleichen "Schleifen-Ebene"):

Code: Alles auswählen

if ($cat_id || ($mode == 'window'))
in der kb_add.php wird diese Funktion aber mit

Code: Alles auswählen

generate_smilies('inline', PAGE_POSTING);
aufgerufen. Das inline wird aber in der Funktion nicht so abgefragt.
in der posting.php werden die Smilies aber auch mit "inline" aufgerufen, genau wie in der kb_add.php - und dort funzt es komischerweise...
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 »

Hat da noch jemand einen Tipp für mich?
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
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Ich habe aber auch eine Frage zum Thema:

Ich habe auch GZIP aktiviert, aber GZIP ist nicht aktiv. Jedenfalls überträgt das System keinen entsprechenden Header.

In meiner phpinfo steht, dass _SERVER["HTTP_ACCEPT_ENCODING"] gzip enthält. gzip steht sogar an mehreren Stellen, also gehe ich mal davon aus, dass mein Apache das unterstützt. Sowas wie "mod_gzip" kann ich zwar nicht finden (das sollte wohl auch vorhanden sein), ich bin mir da aber nicht sicher, ob es sich da nicht um eine Fehlinformation handelt :-?

EDIT:
Ok bis zu dieser Zeile geht die Schleife durch:

Code: Alles auswählen

ob_start('ob_gzhandler');
D.h. ob_start wird dann auch ausgeführt. Aber ich sehe gerade, dass bei der 1. if-Abfrage gar kein Header gesendet wird. Ist das eine andere Art der Komprimierung?

Auch wird nicht wie bei der 2. Schleife do_gzip auf aktiv gesetzt:

Code: Alles auswählen

$do_gzip_compress = TRUE;
Wo wird dann ob_start beendet? Ich finde ob_end_clean() in der page_tail, aber nur dann, wenn do_gzip true ist?!

@gumfuzi
Hast Du Short Urls verbaut? Ich hatte mal einen ähnlichen Fehler wegen der Reihenfolge von start und end.
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

Danke, ich habe es dann gelöst. Weiss zwar nicht mehr genau wie, da es nun schon eine Weile her ist ;)
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Wie kann ich denn nun überprüfen, ob GZIP aktiv ist, wenn kein Header gesendet wird :-?
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Antworten

Zurück zu „Coding & Technik“