Fehler in php-Datei "functions_search.php"

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Juergen W.

Fehler in php-Datei "functions_search.php"

Beitrag von Juergen W. »

hallo,

erhalte immer wieder einen timeout-fehler in der datei "functions_search.php", zeile 62.

den timeout-wert in der php.ini habe ich bereits von 30 auf 60 sekunden erhöht.

der fehler tritt dann auf, wenn ich versuche einen neuen beitrag mit ca. 22kb text zu posten. enthalten sind jede menge sonderzeichen, falls dies eine rolle spielt.

für jede info bzw. hinweis dankbar,
jürgen
Benutzeravatar
Henne
Ehemaliges Teammitglied
Beiträge: 4520
Registriert: 04.01.2002 01:00
Wohnort: Lage (Lippe)
Kontaktdaten:

Beitrag von Henne »

Was steht denn so in der und um die Zeile 62 an Code?
Gast

Beitrag von Gast »

ist die original-datei aus der version 2.0.5. hast ja sicherlich vorliegen. :)

gruß,
jürgen

hier mal ein auszug:
//
// Filter out strange characters like ^, $, &, change "it's" to "its"
//
for($i = 0; $i < count($drop_char_match); $i++)
{
$entry = str_replace($drop_char_match[$i], $drop_char_replace[$i], $entry);
}

if ( $mode == 'post' )
{
$entry = str_replace('*', ' ', $entry);

// 'words' that consist of <3 or >20 characters are removed.
$entry = explode(' ', $entry);
for ($i = 0; $i < sizeof($entry); $i++)
{
$entry[$i] = trim($entry[$i]);
if ((strlen($entry[$i]) < 3) || (strlen($entry[$i]) > 20))
{
$entry[$i] = '';
}
}
$entry = implode(' ', $entry);
}

if ( !empty($stopword_list) )
{
for ($j = 0; $j < count($stopword_list); $j++)
{
$stopword = trim($stopword_list[$j]);

if ( $mode == 'post' || ( $stopword != 'not' && $stopword != 'and' && $stopword != 'or' ) )
{
$entry = str_replace(' ' . trim($stopword) . ' ', ' ', $entry);
}
}
}

if ( !empty($synonym_list) )
{
for ($j = 0; $j < count($synonym_list); $j++)
{
list($replace_synonym, $match_synonym) = split(' ', trim(strtolower($synonym_list[$j])));
if ( $mode == 'post' || ( $match_synonym != 'not' && $match_synonym != 'and' && $match_synonym != 'or' ) )
{
$entry = str_replace(' ' . trim($match_synonym) . ' ', ' ' . trim($replace_synonym) . ' ', $entry);
}
}
}

return $entry;
}

function split_words(&$entry, $mode = 'post')
{
// If you experience problems with the new method, uncomment this block.
/*
$rex = ( $mode == 'post' ) ? "/\b([\w±µ-ÿ][\w±µ-ÿ']*[\w±µ-ÿ]+|[\w±µ-ÿ]+?)\b/" : '/(\*?[a-z0-9±µ-ÿ]+\*?)|\b([a-z0-9±µ-ÿ]+)\b/';
preg_match_all($rex, $entry, $split_entries);

return $split_entries[1];
*/
$split_entries = array();
$split = explode(' ', $entry);
for ($i = 0; $i < count($split); $i++)
{
if (trim($split[$i]) != '')
{
$split_entries[] = trim($split[$i]);
}
}

return $split_entries;
}

function add_search_words($mode, $post_id, $post_text, $post_title = '')
{
global $db, $phpbb_root_path, $board_config, $lang;

$stopword_array = @file($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . "/search_stopwords.txt");
$synonym_array = @file($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . "/search_synonyms.txt");

$search_raw_words = array();
$search_raw_words['text'] = split_words(clean_words('post', $post_text, $stopword_array, $synonym_array));
$search_raw_words['title'] = split_words(clean_words('post', $post_title, $stopword_array, $synonym_array));

$word = array();
$word_insert_sql = array();
while ( list($word_in, $search_matches) = @each($search_raw_words) )
{
$word_insert_sql[$word_in] = '';
if ( !empty($search_matches) )
{
for ($i = 0; $i < count($search_matches); $i++)
{
$search_matches[$i] = trim($search_matches[$i]);

if( $search_matches[$i] != '' )
{
$word[] = $search_matches[$i];
if ( !strstr($word_insert_sql[$word_in], "'" . $search_matches[$i] . "'") )
{
$word_insert_sql[$word_in] .= ( $word_insert_sql[$word_in] != "" ) ? ", '" . $search_matches[$i] . "'" : "'" . $search_matches[$i] . "'";
}
}
}
}
}
Benutzeravatar
Henne
Ehemaliges Teammitglied
Beiträge: 4520
Registriert: 04.01.2002 01:00
Wohnort: Lage (Lippe)
Kontaktdaten:

Beitrag von Henne »

Mach doch mal nen Update auf die 2.0.6
Fixed long post time issue
Ich weiß zwar nicht, ob es das ist, aber könnte ja sein.
Juergen W.

Beitrag von Juergen W. »

hmm, wie sehe ich denn, ob ich in meinem Forum irgendwelche Erweiterungen verwendet werden? Also Mods und dergleichen...

Gruß,
Jürgen
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

wenn es dein forum ist und du nichts eingebaut hast, kannst du davon ausgehen, das es standard ist
Gast

Beitrag von Gast »

tja, genau das ist das problem. ich hab´s nich in betrieb genommen, sondern betreue das ganze jetzt nur. :)
Benutzeravatar
Henne
Ehemaliges Teammitglied
Beiträge: 4520
Registriert: 04.01.2002 01:00
Wohnort: Lage (Lippe)
Kontaktdaten:

Beitrag von Henne »

Machs platt uns dann siehst du es :D

Ne, vergleich doch einfach. Wenn du von den Funktionen her mehr hast, als z.B. hier, dann werden wohl einige MODs drin sein.

Sonst poste mal nen Link zu deinem Board und wir überfliegen das mal und schauen, ob man schon was erkennt
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“