php debug meldung beheben?

Es kommt wenn ich die Einstellungen im ACP vom Tinymce Mod aufrufe,ob es nun auch von dem MOD kommt kann ich leider nicht sagen.

in der install.xml gibt es für diese datei keine änderungs anweissung,die Zeile die angemekert wird sieht so aus:
Code:
$size = (int) $tpl_type[1];
			$maxlength = (int) $tpl_type[2];
Zeilen davor:
Code:
/**
* Build configuration template for acp configuration pages
*/
function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars)
{
	global $user, $module;

	$tpl = '';
	$name = 'config[' . $config_key . ']';

	// Make sure there is no notice printed out for non-existent config options (we simply set them)
	if (!isset($new[$config_key]))
	{
		$new[$config_key] = '';
	}


	if ($config_key == 'board_timezone')
	{
		$new[$config_key] = AUTOMATIC_DST_BOARD_TIMEZONE;
	}
	switch ($tpl_type[0])
	{
		case 'text':
		case 'password':
Zeilen danach:
Code:
$tpl = '<input id="' . $key . '" type="' . $tpl_type[0] . '"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="' . $name . '" value="' . $new[$config_key] . '"' . (($tpl_type[0] === 'password') ?  ' autocomplete="off"' : '') . ' />';
		break;

		case 'dimension':
			$size = (int) $tpl_type[1];
			$maxlength = (int) $tpl_type[2];

			$tpl = '<input id="' . $key . '" type="text"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="config[' . $config_key . '_width]" value="' . $new[$config_key . '_width'] . '" /> x <input type="text"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="config[' . $config_key . '_height]" value="' . $new[$config_key . '_height'] . '" />';
		break;

		case 'textarea':
			$rows = (int) $tpl_type[1];
			$cols = (int) $tpl_type[2];

			$tpl = '<textarea id="' . $key . '" name="' . $name . '" rows="' . $rows . '" cols="' . $cols . '">' . $new[$config_key] . '</textarea>';
		break;

		case 'radio':
			$key_yes	= ($new[$config_key]) ? ' checked="checked"' : '';
			$key_no		= (!$new[$config_key]) ? ' checked="checked"' : '';

			$tpl_type_cond = explode('_', $tpl_type[1]);
			$type_no = ($tpl_type_cond[0] == 'disabled' || $tpl_type_cond[0] == 'enabled') ? false : true;

			$tpl_no = '<label><input type="radio" name="' . $name . '" value="0"' . $key_no . ' class="radio" /> ' . (($type_no) ? $user->lang['NO'] : $user->lang['DISABLED']) . '</label>';
			$tpl_yes = '<label><input type="radio" id="' . $key . '" name="' . $name . '" value="1"' . $key_yes . ' class="radio" /> ' . (($type_no) ? $user->lang['YES'] : $user->lang['ENABLED']) . '</label>';

			$tpl = ($tpl_type_cond[0] == 'yes' || $tpl_type_cond[0] == 'enabled') ? $tpl_yes . $tpl_no : $tpl_no . $tpl_yes;
		break;
 
So hab den Fehler nun auch gefunden.
Liegt an der includes/acp/acp_emotinymce.php

Es sind folgende Zeilen 53 - 56 :

PHP:
						'emotinymce_width'		=> array('lang' => 'ACP_CONFIG_WIDTH', 'validate' => 'int:0', 'type' => 'text', 'method' => false, 'explain' => true,),
						'emotinymce_height'		=> array('lang' => 'ACP_CONFIG_HEIGHT', 'validate' => 'int:0', 'type' => 'text', 'method' => false, 'explain' => true,),
						'emotinymce_qwidth'		=> array('lang' => 'ACP_CONFIG_QWIDTH', 'validate' => 'int:0', 'type' => 'text', 'method' => false, 'explain' => true,),
						'emotinymce_qheight'		=> array('lang' => 'ACP_CONFIG_QHEIGHT', 'validate' => 'int:0', 'type' => 'text', 'method' => false, 'explain' => true,),

Und zwar folgendes ist falsch dort steht jeweils :
PHP:
'type' => 'text', ....

Dort muß aber so etwas stehen :
PHP:
'type' => 'text:size:maxlength', .....

size = Länge des Eingabefeldes (also ein Zahlen Wert)
maxlength = Maximale länge des Eingabefeldes.

Danach sollte die Debug meldung aus der /adm/index.php auch weg sein.

Ich hätte da nur eine Frage du willst ein Support Board für phpbb Boards machen aber findest solche fehler nicht alleine ? Wie willst du da selber richtigen Support geben ?

Noch ein schönes WE schaue so gegen 22 Uhr nochmal hier rein wenn noch was sein sollte.
 
Vielen dank erst einmal,Fehler ist weg.

Nun zu deiner Frage die ich dir gerne beantworte,ich weiss mit sichheit noch nicht alles und Lerne so wie jetzt auch immer dazu.
Die idde kamm durch meine erfahrung auf phpbb.de die haben eine andere auffassung von Helfen wie ich und ich denke mal das mein jetziges wissen ausreicht um Usern denen es so geht wie mir zu Helfen.
Durch eure Hilfe hier habe ich schon viel gelernt und einige Fehler selber behoben,aber leider stosse ich immer noch auf Fehler die mich überfordern,was aber auch eine gute seite hat ich lerne dazu.
Den Fehler zu finden ist vieleicht nicht so schwer,aber auf die Lösung zu kommen um ihn zu beheben das schon für einen Leihen.

Ich habe nun auch eine Frage an dich , es gibt das noch ein Paar debugs die offen sind könntest du mir an Hand der Meldungen eventuell erklären wie man den Fehler Lokalisiert und auf die Lösung zum Beheben kommt?

Ich gebe mal Zwei Beispiele vor:
Debug Meldung1:
Code:
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 232: Undefined offset: 0
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 233: Undefined offset: 0
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 232: Undefined offset: 1
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 233: Undefined offset: 1
Zeile die angemekert wird sieht so aus:
Code:
$total_or[$i]		= ($check[$i][$k][1] == WORD_TYPE_OR) ? $total_or[$i] + 1 : $total_or[$i];
					$total_expl_or[$i]	= ($check[$i][$k][1] == WORD_TYPE_EXPL_OR) ? $total_expl_or[$i] + 1 : $total_expl_or[$i];
Debug Meldung2:
Code:
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 443: Undefined index: bbcode_uid
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 444: Undefined index: message
Zeilen die angemekert wird sieht so aus:
Code:
$row['post_text']			= str_replace($row['bbcode_uid'], $message_data['bbcode_uid'], $row['post_text']);
				$message_data['message'] 	.= $this->parse_vars($row['post_text']);
 
Gerne helfe ich dir.

Also erstmal ist es wichtig zu wissen welche Seite aufgerufen wird und was auf dieser Seite gemacht wurde um die Fehlermeldung hervorzurufen.

Ich tippe hier blind auf die posting.php.

Wie ich das raus gefunde habe ?

Ich habe mir die Zeilen 232 & 233 von dir angesehen und gesehen die gehören zu der Funktion :
PHP:
multi_words($word_text, $post_text)

Nun habe ich mit hilfe meiner IDE in allen PHP Dateien gesucht wo die oben genannt Funktion aufgerufen wird.

Per Zufall in der gleichen Datei in der Funktion:
PHP:
scan_post($post_text)

Diese Funktion wird in der postings.php aufgerufen in der Zeile 1580

PHP:
$aa_id = $auto_answer->scan_post($data['message']);

Nun gehe ich einfach davon aus das in $data['message'] ein Posting gespeichert ist und richtig an die scan_post funktion übergeben wird.

Nun fängt die Fehler Suche an.

Wir wissen das die Funktion multi_words($word_text, $post_text) zwei Parameter haben will.
Also schauen wir mal ob vielleicht die Funktion scan_post falsche Daten an die Funktion übergibt.

Also in der Datei functions_auto_answer.php in Zeile 313 wird die funktion multi_words($word_text,$post_text) aufgerufen:

PHP:
$multi_words = $this->multi_words($row['word_text'], $post_text);

In der Variablen $post_text ist das Posting enthalten und in $row['word_text'] naja sollten ergebnisse von einer Datenbank abfrage stehen diese findest du in den Zeilen 300 - 303
PHP:
		$sql 	= 'SELECT * FROM ' . AUTO_ANSWER_WORDS_TABLE;
		$result	= $db->sql_query($sql);
		
		while ($row	= $db->sql_fetchrow($result))

Daher würde ich mir mal ansehen was in $row enthalten ist.
Wie das geht mit solltest du bereits wissen.

Die Werte dann mal hier Posten bitte.

Danach machen wir weiter.

Wenn du etwas von meinem gefasel nicht verstehen solltest einfach fragen.

[Edit]
Den Fehler in den 443 und 444 Zeilen schauen wir uns danach an.
[/Edit]
 
Zuletzt bearbeitet:
Hallo vielen dank erst einmal für die Ausführliche erklärung,ich konnte dir bis zu diesem Punkt folgen:
Daher würde ich mir mal ansehen was in $row enthalten ist.
Wie das geht mit solltest du bereits wissen.
Da bin ich mir nicht ganz sicher wo und wie das geht,ich habe in phpmyadmin geschaut und nur eine Tabelle phpbb_auto_a_words und keine AUTO_ANSWER_WORDS_TABLE gefunden und die gefundene Tabelle phpbb_auto_a_words hat kein $row enthalten.

Dann habe ich mal in der functions_auto_answer.php geschaut Zeile 306 das gesehen:
Code:
$pattern 		= $this->create_pattern($row['word_text'], $row['word_match']);
wo mir das $row['word_match'] aufgefallen ist,hat das etwas damit zutun?

Leider bin ich der Typ der wenn er etwas nicht oft macht,sehr lange überlegen muss und mehrfach etwas lesen muss bis es Klick macht und ich es verstehe wie z.b. das mit dem $row,ich weiss es vielleicht aber da es schon etwas her sein mag wo ich es gemacht oder gelesen habe fällt es mir auf die schnelle nicht ein sorry.

Nun habe ich mit hilfe meiner IDE in allen PHP Dateien gesucht wo die oben genannt Funktion aufgerufen wird.
Ich vermute mal IDE ist ein Editor z.b. ++Notpade oder?
 
Also du solltest eigentlich wie auf Seite 6 den Inhalt von $row ausgeben lassen mit folgendem Code:

PHP:
               echo "Inhalt von row:<pre>";
                var_dump( $row );
                echo "</pre>";

Die $row['word_match'] hat nicht direkt was damit zu tun denn sie sollte in $row enthalten sein.
$row ist nämlich ein Array was in Zeile 303 gefüllt wird mit ergebnissen aus einer Datenbankabfragen:
PHP:
while ($row	= $db->sql_fetchrow($result))

Eine IDE ist folgendes : http://de.wikipedia.org/wiki/Integrierte_Entwicklungsumgebung
(war zu Faul das abzutippen).

Es ist sowas wie ein Editor nur mächtiger :D
 
Jetzt wo ich es gesehen habe ist es mir wider eingefallen das ergebniss ist:
Code:
Inhalt von row:
array(4) {
  ["post_id"]=>
  string(1) "2"
  ["word_text"]=>
  string(5) "Hallo"
  ["word_type"]=>
  string(1) "0"
  ["word_match"]=>
  string(1) "0"
}

Inhalt von row:
array(4) {
  ["post_id"]=>
  string(1) "2"
  ["word_text"]=>
  string(5) "hallo"
  ["word_type"]=>
  string(1) "0"
  ["word_match"]=>
  string(1) "0"
}
Wenn ich das nun richtig sehe ist es doch das ["word_match"] oder?

Was kannst du jetzt daraus sehen?

Wo kann man den IDE bekommen und was Kostet dieser?
 
Zuletzt bearbeitet:
Jetzt wo ich es gesehen habe ist es mir wider eingefallen das ergebniss ist:

Wenn ich das nun richtig sehe ist es doch das ["word_match"] oder?

Was kannst du jetzt daraus sehen?

Wo kann man den IDE bekommen und was Kostet dieser?

Ja dort ist das ["word_match"] aber es hat nix mit dem Fehler zu tun.
Ich kann nun sehen ob an die Funktion : $this->multi_words($row['word_text'], $post_text);
auch ein Wert in $row['word_text'] übergeben wird.

Nun wissen wir das in der Funktion scan_post($post_text) der Fehler nicht ist und müßen uns die funktion multi_words($word_text, $post_text) genauer ansehen.

Also der Fehler tritt ja immer 2 mal auf hintereinander:
Code:
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 232: Undefined offset: 0
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 233: Undefined offset: 0

Also schauen wir uns die Zeilen mal an :

PHP:
$total_or[$i]= ($check[$i][$k][1] == WORD_TYPE_OR) ? $total_or[$i] + 1 : $total_or[$i];
$total_expl_or[$i]= ($check[$i][$k][1] == WORD_TYPE_EXPL_OR) ? $total_expl_or[$i] + 1 : $total_expl_or[$i];

Nun müßen wir jede Variable einzeln überprüfen die da aufgezeigt wird.

Ich fange bei $total_or[$i] mal an.

Es handelt sich hierbei um ein Array das können wir daran sehen das es nen Index hat und weil es in der Zeile 179 definiert wird.

PHP:
$type_and_found = $message_id = $total_or = $total_expl_or = array();

Mach einfach mal davon ein var_dump(); sowie von $total_expl_or.
Ich tippe darauf das es diese beiden Array sind die Probleme machen da diese nirgendswo mit einem Index versehen werden bzw. verwendet werden vorher als in Zeile 232 und 233.

Eine IDE ist eine beschreibung für einen Editor. Ich verwende z.b. zur Zeit Eclipse mit den PHP Plugins (zum Testen).

Dann gibt es da noch Zend Studio http://shop.zend.com/de/zend-php-ide.html [Kostenpflichtig]

Und noch ne menge mehr einfach mal bei google PHP IDE eingeben.
 
Zuletzt bearbeitet:
Ich habe das var_dum(); so gesetzt wie du gesagt hast:
Code:
var_dump(); $type_and_found = $message_id = $total_or = var_dump(); $total_expl_or = array();
Bekomme nun angezeigt:
Code:
phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_auto_answer.php on line 179: var_dump() expects at least 1 parameter, 0 given
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_auto_answer.php on line 179: var_dump() expects at least 1 parameter, 0 given
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 233: Undefined offset: 0
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 232: Undefined offset: 1
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 233: Undefined offset: 1
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_auto_answer.php on line 179: var_dump() expects at least 1 parameter, 0 given
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_auto_answer.php on line 179: var_dump() expects at least 1 parameter, 0 given
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 233: Undefined offset: 0
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 232: Undefined offset: 1
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 233: Undefined offset: 1
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 515: Undefined variable: forum_data
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 444: Undefined index: bbcode_uid
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_auto_answer.php on line 445: Undefined index: message
Ich vermute das aber nur diese beiden wichtig sind:
Code:
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_auto_answer.php on line 179: var_dump() expects at least 1 parameter, 0 given
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_auto_answer.php on line 179: var_dump() expects at least 1 parameter, 0 given

Was genau ist ein INDEX und wie erkenne ich das es ein INDEX ist?
 
Zurück