Seite 1 von 1

Komische Fehlermeldung beim Posten

Verfasst: 01.08.2003 19:10
von Cendell
Hi!

Komisch komisch ... seit Anfang dieser Woche bekommen wir beim Posten (auch bei der Vorschau) immer folgende Fehlermeldung:

Code: Alles auswählen

Warning: preg_replace(): Parameter mismatch, pattern is a string while replacement in an array.  in /home/aprophis/public_html/board/includes/bbcode.php on line 841
Hier der entsprechende Bereich aus der bbcode.php:

Code: Alles auswählen

function smilies_count($message) 
{ 
   static $orig, $repl; 

   if (!isset($orig)) 
   { 
      global $db, $board_config; 
      $orig = $repl = array(); 

      $sql = 'SELECT code, smile_url FROM ' . SMILIES_TABLE; 

      if( !$result = $db->sql_query($sql) ) 
      { 
         message_die(GENERAL_ERROR, "Couldn't obtain smilies data", "", __LINE__, __FILE__, $sql); 
      } 

      $smilies = $db->sql_fetchrowset($result); 

      usort($smilies, 'smiley_sort'); 
      $number=0; 
      for($i = 0; $i < count($smilies); $i++) 
      { 
         $orig[] = "/(?<=.\W|\W.|^\W)" . phpbb_preg_quote($smilies[$i]['code'], "/") . "(?=.\W|\W.|\W$)/"; 
         $repl[] = '<img src="'. $board_config['smilies_path'] . '/' . $smilies[$i]['smile_url'] . '" alt="' . $smilies[$i]['smile_url'] . '" border="0" />'; 

        $number += preg_match_all($orig[$i], ' ' . $message . ' ', $repl ); 
>>> $message = preg_replace($orig[$i], $repl[$i], ' ' . $message . ' ');
       $message = substr($message, 1, -1); 
      } 
   } 
   return $number; 
} 
Ich hab die Zeile 841 mit >>> markiert.
Ja ich weiss dass ist eine gemodete Stelle, aber das komische daran ist, an den Dateien nichts geändert wurde!! Und vorher lief alles perfekt.

Ich weiss nur dass unser Hoster auf PHP 4.3.2 upgedatet hat. Hat das was zu sagen?

Ausserdem hatten wir im Laufe der Woche ein paar Probs mit dem mySQL Connect, aber das ist eine andere Geschichte ;)

Im Moment weiss ich leider nicht weiter :(
Hoffe dass jemand eine Idee hat...

Grüsse

Verfasst: 01.08.2003 22:33
von Ta Lun
Das liegt wohl am update. Das Problem hier ist, daß er den Suchebereich nicht als array erkennt.
Ich würde den Fehler in dieser Zeile vermuten

Code: Alles auswählen

 $orig = $repl = array();
Probiere mal die beiden variablen in zwei verschiedenen Zeilen als array zu definieren.

Verfasst: 02.08.2003 10:21
von Gast
Danke für den Tip!
Das hat mich weitergebracht. Ich hab einfach mal die beiden Zeilen

Code: Alles auswählen

$message = preg_replace($orig[$i], $repl[$i], ' ' . $message . ' '); 
$message = substr($message, 1, -1); 
auskommentiert, da es diese in der Funktion scheinbar sowieso nicht benötigt :D

Greets...

Verfasst: 02.08.2003 11:46
von Ta Lun
hm...dann wird irgendwas nicht funktionieren.
Es scheint als wenn es sich hier um eine statistische funktion handelt.
Es werden hier wohl die Smilies gezählt,die in einen Thread genutzt wurden.

Verfasst: 02.08.2003 14:10
von Acid
Um welchen MOD handelt es sich denn ? :roll:

Verfasst: 02.08.2003 23:04
von Ta Lun
ich kenne diese Funktion eigentlich nur aus dem statistik mod

Verfasst: 03.08.2003 15:00
von Gast
das ist ein MOD bei dem man im AdminCP einstellen kann, wieviele Smilies ein Posting max. enthalten darf...

Hab noch ein paar kleinere Korreturen gemacht und jetzt funktioniert das Teil wieder tadellos! Du hattest recht Ta Lun, ganz ohne diese Zeilen kann es nicht funzen ;)

Selbes Problem

Verfasst: 01.09.2003 19:49
von Ray
Hi,

wir haben exakt dasselbe Problem bei unserem Board.

Gibt es freundlicherweise jemanden, der dafür eine (für Halb-Laien) verständliche Lösung hat?

Ich würde mich sehr freeuen. :)

Herzlichen Dank,
Ray