Patobulintas IMG BBKodo pataisymas
Parašė 2005 rugpjūčio 9 13:08:06
Paskutinė bbkodo pataisa ištaisė vieną problemą, tačiau, jis vis dar pažeidžiamas prie tam tikrų sąlygų. Aš padirbėjau prie sprendimų ieškojimo, ir sukūriau labiau patikimą pataisą. Sourceforge failai jau atnaujinti, vartotojai gali parsisiųsti maincore.phpatsisiuntimų kategorijos. Jei norite kodą atnaujinti patys, paspauskite "Skaityti daugiau".

Parašė Digitanium Rugpjūčio 7 d. 2005
Išplėstos naujienos
maincore.php redagavimas:

1. Po šios funkcijos:

// Validate numeric input
function isnum($value) {
return (preg_match("/^[0-9]+$/", $value));
}


įterpkite:

// Validate bbcode images
function isImage($matches) {
$im = $matches[1].str_replace(array("?","&","="),"",$matches[3]).$matches[4];
if (list($width, $height, $type, $attr) = @getimagesize($im)) {
$ret = "";
} else {
$ret = "[img]Image Blocked[/img]";
}
return $ret;
}


2. Išimkite šias eilutes po parseubb funkcija:

$ubbs1[10] = '#\[img\](.*?)\[/img\]#si';
$ubbs2[10] = '';


arba jei jūs darėte pirmą pataisymą, išimkite šias eilutes:

$ubbs1[10] = "#\[img\]((http|ftp|https|ftps)://)(.*?)(\.(jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]#sie";
$ubbs2[10] = "''";

3. Po šios eilutės:

for ($i=0;$i < $ubbitems;$i++) $message = preg_replace($ubbs1, $ubbs2, $message);

įterpkite:

$message = preg_replace_callback("#\[img\]((http|ftp|https|ftps)://)(.*?)(\.(jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]#si","isImage",$message);