php debug meldung beheben?

Die vier Meldungen bzgl. Header already sent sind Folgefehler vom ersten. Der erste Notice besagt, das die Variable $forum_id noch nicht belegt ist. Vermutlich kommt die $forum_id aus einem GET-Parameter. Kannst du mal den Code-Kontext posten, in dem $forum_id normalerweise versorgt wird?
 
Kannst du mal den Code-Kontext posten, in dem $forum_id normalerweise versorgt wird?

Hallo würde ich gerne ,aber leider weiss ich nicht was du damit meinst?

Da du etwas von GET-Parameter geschrieben hast,kann ich nur vermuten das es dieser Code Teil sein könnte:
Code:
case 'forum_view':
				include($phpbb_root_path . 'includes/mcp/mcp_forum.' . $phpEx);

				$user->add_lang('viewforum');

				$forum_id = request_var('f', 0);

				$forum_info = get_forum_data($forum_id, 'm_', true);

				if (!sizeof($forum_info))
				{
					$this->main('main', 'front');
					return;
				}

				$forum_info = $forum_info[$forum_id];

				mcp_forum_view($id, $mode, $action, $forum_info);

				$this->tpl_name = 'mcp_forum';
				$this->page_title = 'MCP_MAIN_FORUM_VIEW';
			break;
 
Es könnte sein , dass die /includes/acp/acp_auto_answer.php Datei gelöscht ist und deshalb header('Location...') failed Erros kommen ..
 
Hallo der Fehler in der /includes/acp/acp_auto_answer.php wurde ja behoben nun geht es um eine neue und andere Datei.

Die Aktuelle Fehlermeldung lautet:
Code:
[phpBB Debug] PHP Notice: in file [ROOT]/includes/mcp/mcp_main.php on line 299: Undefined variable: forum_id
und die besagte Zeile:
Code:
$prime_topic_move->mcp_assign_template_vars($ids, $forum_id, $action);
Die variable ist ja Laut der meldung die $forum_id,wenn mir jemand erklären könnte was genau da Falsch sein soll und ich das beheben kann,so das ich es verstehe?
 
Ist der Code-Abschnitt oben vor oder nach dem Fehler?

Die genaue Begründung lautet: Du versuchst eine Variable ($forum_id) als Parameter zu verwenden, aber diese Variable existiert zu diesen Zeitpunkt (Laufzeit) noch nicht, weil der Code der die Variable erzeugt (also ihr einen Wert zuweist) offensichtlich noch nicht ausgeführt wurde.
 
Der Code-Ausschnitt oben ist vor dem Fehler.

Deine Erklärung habe ich verstanden,aber das der Fehler auftritt nicht.
Den es existieren ja schon Foren,infolgedessen müssten auch Foren ID's existieren?
 
Es geht nicht um die Foren-ID's an sich sondern darum, das die Variable $forum_id nicht belegt ist. Eine Variable wird mit einem Wert versorgt, wie folgt:

PHP:
$variable = 'wert';

Dabei spielt es keine Rolle, ob bspw. 'wert' jetzt als Zeichenkette da steht oder der Rückgabewert einer Funktion ist. Das hier ist genauso gültig:

PHP:
function funktion()
{
  // Mach was wunderbares...
  return 'wert';
}

$variable = funktion();

Was allerdings nicht geht ist folgendes:

PHP:
function funktion()
{
  $variable = 'wert';
}

echo $variable;

Warum geht das nicht, magst du dich fragen. Das hat was mit dem sogenannten Scope von Variablen (also Gültigkeitsbereich) zu tun. Innerhalb der Funktion "funktion()" wird $variable mit einem Wert versorgt, aber $variable ist nur innerhalb von "funktion()" gültig. Im globalen Scope kannst du auf die Variable $variable von "funktion()" nicht zugreifen.

Meine Vermutung: $forum_id wird innerhalb einer Funktion mit dem Rückgabewert der Funktion request() versorgt, ist aber nur innerhalb dieser Funktion verfügbar. Und dein Code ist so aufgebaut, das außerhalb der Funktion darauf zugegriffen werden soll.

Da ich aber nicht den kompletten Code sehe (was vermutlich etwas viel wäre bei > 2000 LoC) ist das nur eine Mutmaßung.
 
Um dein Problem kurzfristig zu lösen, könntest du, bevor die Funktion

PHP:
$prime_topic_move->mcp_assign_template_vars($ids, $forum_id, $action);

aufgerufen wird, prüfen, ob $forum_id gestetzt ist und ggf. auf einen bestimmten Wert setzen:

PHP:
if( !isset( $forum_id ) )
  $forum_id = 0;
$prime_topic_move->mcp_assign_template_vars($ids, $forum_id, $action);

Damit verschwindet zwar die Meldung, aber das eigentliche Problem wird dadurch nicht behoben werden.

Du könntest zu mindest schon mal eine Antwort auf die indirekte Frage geben, ob $forum_id innerhalb einer Funktion mit einem Wert versorgt wird oder nicht.
 
An deiner Stelle würde ich PHPBB neuhochladen , da sonst immer Fehler auftreten können , weil man nicht in dem Fall nicht genau weiß , woran es liegt.

LG
 
Zurück