php debug meldung beheben?

Ich habe gerade noch mal geschaut vor der Zeile der Fehlermeldung kommt nichts was diesem ähnlich wäre:
Code:
if( !isset( $forum_id ) )
  $forum_id = 0;
$prime_topic_move->mcp_assign_template_vars($ids, $forum_id, $action);
Also gehe ich mal davon aus das die besagte versorgung fehlt?
 
Öhm, wie jetzt? Also befindet sich der Code oder zumindest der Aufruf des selben (oben genannten im Beitrag) also doch nicht vor der Fehlerstelle? Dann ist das natürlich die Begründung. In diesem Falle würde ich fragen, wie der Code, der den Fehler verursacht dort hingekommen ist? Wenn du den Code dort selbst eingebaut hast, fehlt evtl. noch der gleiche Aufruf, um $forum_id zu versorgen:

PHP:
// Fehlerstelle (Workarround wieder auskommentieren):
// if( !isset( $forum_id ) )
//  $forum_id = 0;
$forum_id = request_var('f', 0);
$prime_topic_move->mcp_assign_template_vars($ids, $forum_id, $action);
 
Sorry nun verstehe ich nicht,der Code aus deinem besagten Beitrag doch der befindet sich vor der Fehlermeldung,ich dachte das wäre der Falsche da muss ich dich Falsch verstanden habe.

Wenn das dann doch der Code-Teil ist welchen soll ich dann noch Posten,das verstehe ich nicht?
 
So noch mal langsam:

- Es gibt einen Code-Teil A, der die Variable $forum_id mit einem Wert versorgt, der Code-Teil ist im Beitrag http://www.tutorials.de/php/387348-php-debug-meldung-beheben.html#post2005878 zu finden, den du gepostet hast.
- Es gibt einen Code-Teil B, der die Fehlermeldung wirft, weil er auch auf die Variable $forum_id zugreift, diese aber offensichtlich nicht gesetzt (versorgt, gefüllt, wie du es nennen willst) ist.

Bisher gibt es zwei (eigentlich sogar drei) Annahmen:

- Code-Teil B wird vor dem Code-Teil A ausgeführt (das hast du bereits verneint, und dann von mir vermeintlich wieder bejaht, es ist aber anscheinend doch nicht so) => Annahme falsch
- Code-Teil A befindet sich in einer Funktion und somit ist die Variable $forum_id nur innerhalb dieser Funktion gültig und kann von außerhalb nicht zugegriffen werden => Annahme wurde bisher nicht bestätigt oder verneint
- Das gleiche kann umgekehrt für Code-Teil B gelten; Dieser befindet sich in einer Funktion und kann deshalb nicht auf die Variable $forum_id von Code-Teil zugreifen.

Da es aber anscheinend kein Problem ist, die Variable bei Code-Teil B noch einmal mit einem Wert zu versorgen und es wirkt sich nicht auf den Rest des Scriptes aus, wäre die vermutlich beste Lösung, den Code aus Teil A zu kopieren, der die Variable $forum_id versorgt, und das macht der hier:

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

und diesen bei Code-Teil einzufügen und zwar vor die Zeile, die den Fehler verursacht.


Da du anscheinend noch nicht lange mit PHP arbeitest, möchte ich mal kurz erklären, wie PHP arbeitet. Grundsätzlich wird ein PHP-Script von oben nach unten Zeile für Zeile abgearbeitet. Außer es handelt sich um eine Funktion oder eine Kommentar-Zeile. Funktionszeilen werden erst dann abgearbeitet, wenn die Funktion auch aufgerufen wird.

PHP:
function funkA()
{
  // Dieser Code wird erst abgearbeitet, wenn die Funktion "funkA" aufgerufen wird
  echo "Welt";
}

function funkB()
{
  // Dieser Code wird erst abgearbeitet, wenn die Funktion "funkB" aufgerufen wird
  echo "Hallo";
}

funkB();
funkA();

Wenn also ein Code in einer Funktion drin steht, muss man suchen, wo die Funktion aufgerufen wird, erst dann kann man entscheiden, welcher Code-Teil zu erst ausgeführt wird.
 
Vielen dank für die ausführliche und sehr gute verständliche erklärung,ich kann sagen ich habe etwas sehr gutes gelernt.
 
Hallo ich muss mich leider noch mal an euch wenden,mit dem Debug Fehler finden komme ich nicht klar.
Mir ist bei meinem Forum Valide machen folgender Debug aufgefallen:
Code:
[phpBB Debug] PHP Notice: in file [ROOT]/includes/acp/auth.php on line 1208: Undefined index: Einstellungen
[phpBB Debug] PHP Notice: in file [ROOT]/includes/acp/auth.php on line 1208: Undefined index: Einstellungen
[phpBB Debug] PHP Notice: in file [ROOT]/includes/acp/auth.php on line 1208: Undefined index: Einstellungen
[phpBB Debug] PHP Notice: in file [ROOT]/includes/acp/auth.php on line 1208: Undefined index: Einstellungen
[phpBB Debug] PHP Notice: in file [ROOT]/includes/acp/auth.php on line 1208: Undefined index: Einstellungen
[phpBB Debug] PHP Notice: in file [ROOT]/includes/acp/auth.php on line 1208: Undefined index: Einstellungen
[phpBB Debug] PHP Notice: in file [ROOT]/includes/acp/auth.php on line 1208: Undefined index: Einstellungen
[phpBB Debug] PHP Notice: in file [ROOT]/includes/acp/auth.php on line 1114: Undefined index: Einstellungen
Ich weiss das irgndwas in einer Sprachdatei zu fehlen scheint,aber leider nicht was und in welcher?

In der Zeile 1114 steht:
Code:
'CAT_NAME'	=> $user->lang['permission_cat'][$cat])
Es gibt aber keine language/mods/auth.php in der etwas eingetragen werden könnte und in language/mods/common.php bring ein eintrag nichts.

Kann mir bitte für die Zukunft jemand erklären wo ich herraus finde in welche Datei was muss?
 
Unabhängig deiner Dateien.
Die Fehlermeldung sagt aus, dass du in dieser Zeile in einem Array keinen Eintrag zum Index 'Einstellungen' hast.
Da der erste Level des Arrays in Zeile 1114 'permission_cat' lautet, müsste also der Inhalt von $cat 'Einstellungen' sein.

Mach mal ein var_dump() auf $user->lang['permission_cat'] und schau ob dort 'Einstellungen' vorhanden ist. Ansonsten machst du am besten sowas
PHP:
'CAT_NAME'  => (array_key_exists($cat, $user->lang['permission_cat']) ? $user->lang['permission_cat'][$cat]) : 'default_value')
 
Wie genau geht das mit dem var_dum()?

Wenn ich das in besagte Datei eintrage bekomme ich eine weisse seite angezeigt.
Code:
'CAT_NAME'  => (array_key_exists($cat, $user->lang['permission_cat']) ? $user->lang['permission_cat'][$cat]) : 'default_value)
 
Zurück