Seite 1 von 2

Keep Unread Mod Problem (gelöst!)

Verfasst: 02.04.2007 07:52
von Overhead
Ich bekomme folgende Fehlermeldungen angezeigt:

Warning: mysql_fetch_array(): 23 is not a valid MySQL result resource in /var/www/web205/html/db/mysql4.php on line 214

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web205/html/db/mysql4.php:214) in /var/www/web205/html/includes/page_header.php on line 597

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web205/html/db/mysql4.php:214) in /var/www/web205/html/includes/page_header.php on line 603

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web205/html/db/mysql4.php:214) in /var/www/web205/html/includes/page_header.php on line 604

die betreffenden Codezeile in der page_header.php enthalten folgenden Text:

Code: Alles auswählen

593 // Work around for "current" Apache 2 + PHP module which seems to not
594 // cope with private cache control setting
595 if (!empty($HTTP_SERVER_VARS['SERVER_SOFTWARE']) && strstr($HTTP_SERVER_VARS['SERVER_SOFTWARE'], 'Apache/2'))
596 {
597 	header ('Cache-Control: no-cache, pre-check=0, post-check=0');
598 }
599 else
600 {
601	header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
602 }
603 header ('Expires: 0');
604 header ('Pragma: no-cache');
605
606 $template->pparse('overall_header');
607 
608 ?>
Der Mod ist aber bereits in den Zeilen 64 - 167 aktiv - denn dort steht:

Code: Alles auswählen

64 // START Meeting Mod
65 if ( $gen_meeting_header !== FALSE )
66 {
67	// Get access status for all meetings
68	$sql = "SELECT m.meeting_id, mg.meeting_group FROM " . MEETING_DATA_TABLE . " m, " . MEETING_USERGROUP_TABLE . " mg
69		WHERE mg.meeting_id = m.meeting_id";
70	if ( !$result = $db->sql_query($sql) )
71	{
72		message_die(GENERAL_ERROR, 'Could not get meeting usergroups', '', __LINE__, __FILE__, $sql);
73	}
74
75	$meetings_access_ids = array();
76
77	while ( $row = $db->sql_fetchrow($result) )
78	{
79		$meeting_id = $row['meeting_id'];
80		$meeting_group = $row['meeting_group'];
81
82		if ( $meeting_group == -1 )
83		{
84			$meetings_access_ids[] = $meeting_id;
85		}
86		else
87		{
88			$sql_auth_id = "SELECT g.group_id FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug
89					WHERE g.group_id = $meeting_group
90					AND g.group_id = ug.group_id
91					AND ug.user_pending <> " . TRUE . "
92					AND g.group_single_user <> " . TRUE . "
93					AND ug.user_id = " . $userdata['user_id'];
94			if ( !$result_auth_id = $db->sql_query($sql_auth_id) )
95			{
96				message_die(GENERAL_ERROR, 'Could not get meeting access data', '', __LINE__, __FILE__, $sql_auth_id);
97			}
98
99			$count_usergroups = $db->sql_numrows($result_auth_id);
100			$db->sql_freeresult($result_auth_id);
101
102			if ( $count_usergroups > 0 )
103			{
104				$meetings_access_ids[] = $meeting_id;
105			}
106		}
107	}
108
109	$db->sql_freeresult($result);
110
111	include($phpbb_root_path.'language/lang_'.$board_config['default_lang'].'/lang_meeting.'.$phpEx);
112
113	if ( count($meetings_access_ids) > 0 )
114	{
115		$meeting_ids = ( count($meetings_access_ids) == 1 ) ? $meetings_access_ids[0] : implode(',', $meetings_access_ids);
116		$sql_meeting_access = ' WHERE meeting_id IN ('.$meeting_ids.') AND meeting_time > '.time();
117	}
118	else if ($userdata['user_level'] == ADMIN)
119	{
120		$sql_meeting_access = ' WHERE meeting_time > '.time();
121	}
122	else
123	{
124		$sql_meeting_access = '';
125	}
126
127	if ($sql_meeting_access != '')
128	{
129		$sql = "SELECT count(meeting_id) as total_meetings FROM " . MEETING_DATA_TABLE . "
130			$sql_meeting_access";
131		if ( !$result = $db->sql_query($sql) )
132		{
133			message_die(GENERAL_ERROR, 'Could not get meeting data', '', __LINE__, __FILE__, $sql);
134		}
135
136		while ( $row = $db->sql_fetchrow($result) )
137		{
138			$meeting_active_ids = $row['total_meetings'];
139		}
140
141		$db->sql_freeresult($result);
142	}
143	else
144	{
145		$meeting_active_ids = 0;
146	}
147
148	if ( $meeting_active_ids == 0 )
149	{
150		$meeting_active_string = $lang['No_active_meetings'];
151	}
152	else if ( $meeting_active_ids == 1 )
153	{
154		$meeting_active_string = $lang['One_active_meeting'];
155	}
156	else
157	{
158		$meeting_active_string = sprintf($lang['Active_meetings'], $meeting_active_ids);
159	}
160
161	$meeting_link = '<a href="'.append_sid("meeting.$phpEx").'" class="mainmenu">'.$meeting_active_string.'</a>';
162
163	$template->assign_vars(array(
164		'MEETING_LINK' => $meeting_link)
165	);
166 }
167 // END Meeting Mod
Hat da jemand eine Idee wie man das Problem lösen könnte?

cu Overhead

Verfasst: 02.04.2007 11:37
von oxpus
Kam der Fehler direkt nach dem Einbau des Meeting MOD oder erst später?

Verfasst: 02.04.2007 13:24
von Overhead
Die Meldungen sind erst nach dem Einbau aufgetaucht - ob dafür andere Mods die vorher eingebaut wurden mitverantwortlich sind kann ich nicht sagen - der Fehler trat erst nach Einbau von diesem Mod auf. Im Reminder Mod war ein Fehler drin, da dort nach $result die Ausgabe in results erfolgen sollte aber das Problem konnte durch Anpassung der Werte auf result gelöst werden).

Es sind folgende Mods verbaut: (Reihenfolge entspricht nicht unbedingt dem Zeitpunkt der Installation)

Gender Mod
Birthday Mod
Advanced BBC Box Mod
Admin Reminder Mod
Xing Mod
Ad Welcome Mod
Import Feeds Mod (der läuft allerdings nicht - ist aber eine andere Baustelle)
Admin Email List Mod
Quick Reply Mod
Nach oben (lediglich ein Anker zum Sprung nach oben)
Nach unten (lediglich ein Anker zum Sprung nach unten)
Keep Unread Mod
Advanced Poll Mod
Absence Mod

verbauen wollte ich noch: (aber das liegt wohl auf Eis bis der Rest funktioniert)

Last Visit Mod
Atlas Mod
Attachement Mod
diverse Erweiterungen für BBC Box (Google Search, Wikki, Hide ect.)

Ich hoffe die Angaben helfen irgendwie weiter?

cu Overhead

Verfasst: 02.04.2007 14:59
von oxpus
Ich hoffe die Angaben helfen irgendwie weiter?
Nicht wirklich.
Verlinke bitte mal Deine page_header.php hier, damit ich da einen Blick rein werfen kann.
Der Code vom Meeting MOD ist allein genommen korrekt...

Verfasst: 02.04.2007 16:03
von Overhead
@ oxpus

hier als txt file.

cu Overhead

Verfasst: 02.04.2007 17:41
von oxpus
Die Datei ist soweit i.o.
Bei welcher Seite genau kommt denn dieser Fehler?

Verfasst: 02.04.2007 17:55
von Overhead
Direkt nach dem einloggen auf der Index Seite.

cu Overhead

Verfasst: 02.04.2007 20:17
von oxpus
Und auch nur auf dem Index oder auch noch woanders?

Verfasst: 02.04.2007 20:27
von Overhead
@ oxpus

der Fehler kommt nur auf der index Seite - sonst nirgends - zur Sicherheit bevor die Frage auftaucht [url=http://www.maklerteam24,de/pics/index.txt]hier[/url] der Link zur index als txt.

cu Overhead

Verfasst: 02.04.2007 21:06
von oxpus
Oha, das ist wohl verzwickter, als ich dachte.
Ich kann so den Fehler nicht entdecken.
Entweder Du lässt mich mal auf deinen FTP, um selber zu debuggen oder Du übernimmst den Part:

Dazu in der page_header.php einfach ein paar echos einfügen und das Ergebnis posten.
Also im Code-Block den Meeting MODs jeweils nach den Zeilen

Code: Alles auswählen

while ( $row = $db->sql_fetchrow($result) )
{
(die Klamer beachten) diese Zeile einfügen:

Code: Alles auswählen

echo $sql;exit;
Je nach dem, wo der Fehler auftaucht, kommt die betreffende SQL-Anweisung hoch und ich kann die Suche eingrenzen.
Wenn hier kein Fehler aufkommt (also neben der angezeigten SQL-Anweisung auch der von Dir gepostete Fehler), dann liegt die Ursache im Zusammenspiel mit einem anderen MOD.
Ich hatte da auch zunächst Deinen Einbau des Keep Unread MODs in Verdacht, da die index.php nicht gerade korrekt aussah, aber die Struktur scheint zu stimmen. Sonst wäre ja auch der Index selber im Eimer...