php debug meldung beheben?

@shorty1968: Es wäre sinnvoll, wenn du etwas mehr aus deinem Skript zeigen könntest. Mehr bedeutet in diesem Zusammenhang etwa zehn Zeilen vor der fehlerhaften Zeile und etwa zehn Zeilen danach. Damit können wir hier etwas anfangen. Außerdem hast du in deinem vorvorletztem Beitrag gesagt, dass er da "meckert", in dem Beitrag davor jedoch, dass er dir nichts anzeigt, was mich darauf schließen lässt, dass du uns etwas verheimlichst. Ich bitte dich hiermit im Namen aller Nutzer dieses Forums, die dir helfen möchten, und ganz besonders im Namen von Yaslaw und saftmeister, dass du uns etwas entgegen kommst und auch ein wenig mitdenkst. Es kann doch nicht so schwer sein, auch einmal selbstständig das PHP-Handbuch, welches sehr gut dokumentiert ist, durchzulesen und sich selber zu seinem Ziel zu finden.
 
Zuletzt bearbeitet:
Hallo sorry werde mich versuchen dran zuhalten,dann mal hier die Zeilen die vor dem Fehler Zeile 1114 stehen:
Code:
// Now, normally remove permissions...
		if ($permission_type !== false)
		{
			$where_sql[] = $db->sql_in_set('auth_option_id', array_map('intval', $option_id_ary));
		}

		$sql = "DELETE FROM $table
			WHERE " . implode(' AND ', $where_sql);
		$db->sql_query($sql);

		$this->acl_clear_prefetch();
	}

	/**
	* Assign category to template
	* used by display_mask()
	*/
	function assign_cat_array(&$category_array, $tpl_cat, $tpl_mask, $ug_id, $forum_id, $show_trace = false, $s_view)
	{
		global $template, $user, $phpbb_admin_path, $phpEx;
		
		@reset($category_array);
		while (list($cat, $cat_array) = each($category_array))
		{
			$template->assign_block_vars($tpl_cat, array(
				'S_YES'		=> ($cat_array['S_YES'] && !$cat_array['S_NEVER'] && !$cat_array['S_NO']) ? true : false,
				'S_NEVER'	=> ($cat_array['S_NEVER'] && !$cat_array['S_YES'] && !$cat_array['S_NO']) ? true : false,
				'S_NO'		=> ($cat_array['S_NO'] && !$cat_array['S_NEVER'] && !$cat_array['S_YES']) ? true : false,
Die Zehn Zeilen die unter der Fehlerzeile 1114 stehen:
Code:
);

			/*	Sort permissions by name (more naturaly and user friendly than sorting by a primary key)
			*	Commented out due to it's memory consumption and time needed
			*
			$key_array = array_intersect(array_keys($user->lang), array_map(create_function('$a', 'return "acl_" . $a;'), array_keys($cat_array['permissions'])));
			$values_array = $cat_array['permissions'];

			$cat_array['permissions'] = array();

			foreach ($key_array as $key)
			{
				$key = str_replace('acl_', '', $key);
				$cat_array['permissions'][$key] = $values_array[$key];
			}
			unset($key_array, $values_array);
*/
			@reset($cat_array['permissions']);
			while (list($permission, $allowed) = each($cat_array['permissions']))
			{
				if ($s_view)
				{
					$template->assign_block_vars($tpl_cat . '.' . $tpl_mask, array(
						'S_YES'		=> ($allowed == ACL_YES) ? true : false,
						'S_NEVER'	=> ($allowed == ACL_NEVER) ? true : false,

						'UG_ID'			=> $ug_id,
						'FORUM_ID'		=> $forum_id,
						'FIELD_NAME'	=> $permission,
						'S_FIELD_NAME'	=> 'setting[' . $ug_id . '][' . $forum_id . '][' . $permission . ']',

						'U_TRACE'		=> ($show_trace) ? append_sid("{$phpbb_admin_path}index.$phpEx", "i=permissions&mode=trace&u=$ug_id&f=$forum_id&auth=$permission") : '',
						'UA_TRACE'		=> ($show_trace) ? append_sid("{$phpbb_admin_path}index.$phpEx", "i=permissions&mode=trace&u=$ug_id&f=$forum_id&auth=$permission", false) : '',

						'PERMISSION'	=> $user->lang['acl_' . $permission]['lang'])
					);
				}
!0 zeilen die vor der Fehler Zeile 1208 stehen:
Code:
$permissions = $permission_row[$forum_id];
			ksort($permissions);

			@reset($permissions);
			while (list($permission, $auth_setting) = each($permissions))
			{
				if (!isset($user->lang['acl_' . $permission]))
				{
					$user->lang['acl_' . $permission] = array(
						'cat'	=> 'misc',
						'lang'	=> '{ acl_' . $permission . ' }'
					);
				}

				$cat = $user->lang['acl_' . $permission]['cat'];

				// Build our categories array
				if (!isset($categories[$cat]))
				{
!0 Zeilen die nach der Fehler Zeile 1208 stehen:
Code:
}

				// Build our content array
				if (!isset($content_array[$forum_id]))
				{
					$content_array[$forum_id] = array();
				}

				if (!isset($content_array[$forum_id][$cat]))
				{
					$content_array[$forum_id][$cat] = array(
						'S_YES'			=> false,
						'S_NEVER'		=> false,
						'S_NO'			=> false,
						'permissions'	=> array(),
					);
				}

				$content_array[$forum_id][$cat]['S_YES'] |= ($auth_setting == ACL_YES) ? true : false;
				$content_array[$forum_id][$cat]['S_NEVER'] |= ($auth_setting == ACL_NEVER) ? true : false;
				$content_array[$forum_id][$cat]['S_NO'] |= ($auth_setting == ACL_NO) ? true : false;

				$content_array[$forum_id][$cat]['permissions'][$permission] = $auth_setting;
			}
		}
	}
 
Dann ändere mal beim ersten die entsprechenden Zeilen, so dass am Ende das da steht:
(Zeile 25, erstes Beispiel, bis Zeile 1, zweites Beispiel)
PHP:
$template->assign_block_vars($tpl_cat, array(
  'S_YES'     => ($cat_array['S_YES'] && !$cat_array['S_NEVER'] && !$cat_array['S_NO']) ? true : false,
  'S_NEVER'   => ($cat_array['S_NEVER'] && !$cat_array['S_YES'] && !$cat_array['S_NO']) ? true : false,
  'S_NO'      => ($cat_array['S_NO'] && !$cat_array['S_NEVER'] && !$cat_array['S_YES']) ? true : false,
  'CAT_NAME'  => (array_key_exists($cat, $user->lang['permission_cat']) ? $user->lang['permission_cat'][$cat]) : 'default_value),
);
Und an der anderen Stelle:
(Zeile 18, drittes Beispiel, bis Zeile 1, viertes Beispiel)
PHP:
if (!isset($categories[$cat]) and array_key_exists($cat, $user->lang['permission_cat']))
{
  $categories[$cat] = $user->lang['permission_cat'][$cat];
}
 
Dann liegt das wohl daran, dass der Index Einstellungen für diese Seite gebraucht wird, er aber nicht definiert ist.

Nachtrag: Mir ist gerade aufgefallen, dass da eine Klammer zu viel ist. Dass hätte dir allerdings dein PHP-Parser anzeigen müssen.
PHP:
$template->assign_block_vars($tpl_cat, array(
  'S_YES'     => ($cat_array['S_YES']   && !$cat_array['S_NEVER'] && !$cat_array['S_NO']),
  'S_NEVER'   => ($cat_array['S_NEVER'] && !$cat_array['S_YES']   && !$cat_array['S_NO']),
  'S_NO'      => ($cat_array['S_NO']    && !$cat_array['S_NEVER'] && !$cat_array['S_YES']),
  'CAT_NAME'  => (array_key_exists($cat, $user->lang['permission_cat']) ? $user->lang['permission_cat'][$cat] : 'default_value'),
);
 
Zuletzt bearbeitet:
Danke aber wider eine weisse seite,das hatten wir beim ersten versuch auch immer wider kamm eine weisse seite nach den änderunge.
 
Ich habe gerade noch gesehen, dass da ebenfalls noch ein Anführungszeichen fehlte. Dass habe ich jetzt nachgebessert. Ansonsten gilt folgende Aussage: der PHP-Parser muss dir eine Fehlermeldung anzeigen.
 
Wider eine weisse seite,wie du am anhang sehen kannst Zeigt mir mein UltraEdit keinen Fehler an?
 

Anhänge

  • parser.png
    parser.png
    6,4 KB · Aufrufe: 8
Fehler heißt, dass er auf der Seite zu sehen ist und in der PHP-Log-Datei. Wie gesagt: lerne die Grundlagen und denke bitte mit.
 
Zurück