Ignore:
Timestamp:
07/02/08 18:27:06 (4 years ago)
Author:
hverton
Message:

Merged trunk revisions 1408:1508 into the PLi-Fusion branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PLi-Fusion/includes/core_functions.php

    r1408 r1509  
    1414+----------------------------------------------------*/ 
    1515if (eregi("core_functions.php", $_SERVER['PHP_SELF'])) die(); 
     16 
     17// disable error reporting, we don't want to give anything away 
     18error_reporting(E_USER_ERROR); 
    1619 
    1720// code to calculate the page loading time, this can be used 
     
    8083define("PATH_ADMIN", PATH_ROOT."administration/"); 
    8184define("PATH_THEMES", PATH_ROOT."themes/"); 
    82 define("PATH_PHOTOS", PATH_ROOT."images/photoalbum/"); 
     85define("PATH_PHOTOS", PATH_ROOT."images/gallery/"); 
    8386define("PATH_IMAGES", PATH_ROOT."images/"); 
    8487define("PATH_IMAGES_A", PATH_IMAGES."articles/"); 
     
    97100 
    98101// load the config file 
    99 if (file_exists(PATH_ROOT."config.php")) { 
    100     @include_once PATH_ROOT."config.php"; 
     102@include_once PATH_ROOT."configpath.php"; 
     103if (substr(CONFIG_PATH,0,1) == "/") { 
     104    if(is_file(CONFIG_PATH."/config.php")) { 
     105        @include_once CONFIG_PATH."/config.php"; 
     106    } 
     107} else { 
     108    if(is_file(PATH_ROOT.CONFIG_PATH."/config.php")) { 
     109        @include_once PATH_ROOT.CONFIG_PATH."/config.php"; 
     110    } 
    101111} 
    102112 
    103113// if config.php is absent or empty, bail out with an error 
    104 if (!isset($db_name)) die('FATAL ERROR: config file is missing. Check the documentation on how to run the setup'); 
     114if (!isset($db_name)) terminate('FATAL ERROR: config file is missing. Check our Wiki at http://exitecms.exite.eu on how to run the setup'); 
    105115 
    106116// load the database functions, and establish a database connection 
     
    186196require_once PATH_INCLUDES."user_functions.php"; 
    187197 
    188 // activate query log debugging if set 
    189 if ($settings['debug_querylog'] != "") { 
    190     $_db_log = checkgroup($settings['debug_querylog']); 
     198// set the query log debugging switch, enable error reporting if needed 
     199$_db_log = checkgroup($settings['debug_querylog'], false); 
     200// if debugging is requested, also activate some other debugging features 
     201if ($_db_log) { 
     202    error_reporting(E_ALL); 
    191203} 
    192204 
     
    221233 
    222234// image types we can generate a thumbnail from 
    223 $thumbtypes = array(".gif",".jpg",".jpeg",".png",); 
     235$thumbtypes = array(".gif",".jpg",".jpeg",".png",".bmp", ".psd"); 
    224236 
    225237// debug function, handy to print a standard debug text 
     
    227239 
    228240    if (is_array($text)) { 
     241        echo "<br /><hr /><br /><pre>"; print_r($text); echo "</pre><br /><hr /><br />"; 
     242    } elseif (is_object($text)) { 
    229243        echo "<br /><hr /><br /><pre>"; print_r($text); echo "</pre><br /><hr /><br />"; 
    230244    } else { 
     
    352366} 
    353367 
    354 // Parse smiley bbcode into HTML images 
    355 function parsesmileys($message) { 
    356     $smiley = array( 
    357         "#\:oops\:#si" => "<img src='".IMAGES."smiley/more/redface.gif' alt='smiley' />", 
    358         "#\;\)#si" => "<img src='".IMAGES."smiley/wink.gif' alt='smiley' />", 
    359         "#\:\(#si" => "<img src='".IMAGES."smiley/sad.gif' alt='smiley' />", 
    360         "#\:\|#si" => "<img src='".IMAGES."smiley/frown.gif' alt='smiley' />", 
    361         "#\:o#si" => "<img src='".IMAGES."smiley/shock.gif' alt='smiley' />", 
    362         "#\:p#si" => "<img src='".IMAGES."smiley/pfft.gif' alt='smiley' />", 
    363         "#b\)#si" => "<img src='".IMAGES."smiley/cool.gif' alt='smiley' />", 
    364         "#\:d#si" => "<img src='".IMAGES."smiley/grin.gif' alt='smiley' />", 
    365         "#\:@#si" => "<img src='".IMAGES."smiley/angry.gif' alt='smiley' />", 
    366         "#\:thumbleft#si" => "<img src='".IMAGES."smiley/more/icon_thumleft.gif' alt='smiley' />", 
    367         "#\:thumbright#si" => "<img src='".IMAGES."smiley/more/icon_thumright.gif' alt='smiley' />", 
    368         "#=D&gt;#si" => "<img src='".IMAGES."smiley/more/eusa_clap.gif' alt='smiley' />", 
    369         "#\\\:D/#si" => "<img src='".IMAGES."smiley/more/eusa_dance.gif' alt='smiley' />", 
    370         "#\:D#si" => "<img src='".IMAGES."smiley/more/biggrin.gif' alt='smiley' />", 
    371         "#\:smt014#si" => "<img src='".IMAGES."smiley/more/014.gif' alt='smiley' />", 
    372         "#\:boring#si" => "<img src='".IMAGES."smiley/more/015.gif' alt='smiley' />", 
    373         "#\:smt018#si" => "<img src='".IMAGES."smiley/more/018.gif' alt='smiley' />", 
    374         "#\:smt022#si" => "<img src='".IMAGES."smiley/more/022.gif' alt='smiley' />", 
    375         "#\:smt071#si" => "<img src='".IMAGES."smiley/more/071.gif' alt='smiley' />", 
    376         "#\:smt102#si" => "<img src='".IMAGES."smiley/more/102.gif' alt='smiley' />", 
    377         "#\:smt100#si" => "<img src='".IMAGES."smiley/more/100.gif' alt='smiley' />", 
    378         "#\:\-D#si" => "<img src='".IMAGES."smiley/more/003.gif' alt='smiley' />", 
    379         "#\:\-\)#si" => "<img src='".IMAGES."smiley/more/001.gif' alt='smiley' />", 
    380         "#\:\(#si" => "<img src='".IMAGES."smiley/more/sad.gif' alt='smiley' />", 
    381         "#\:o#si" => "<img src='".IMAGES."smiley/more/surprised.gif' alt='smiley' />", 
    382         "#\:shock\:#si" => "<img src='".IMAGES."smiley/more/shock.gif' alt='smiley' />", 
    383         "#8\)#si" => "<img src='".IMAGES."smiley/more/cool.gif' alt='smiley' />", 
    384         "#\:lol\:#si" => "<img src='".IMAGES."smiley/more/lol.gif' alt='smiley' />", 
    385         "#\:x#si" => "<img src='".IMAGES."smiley/more/mad.gif' alt='smiley' />", 
    386         "#\:\-x#si" => "<img src='".IMAGES."smiley/more/icon_mad.gif' alt='smiley' />", 
    387         "#\:P#si" => "<img src='".IMAGES."smiley/more/icon_razz.gif' alt='smiley' />", 
    388         "#\:razz\:#si" => "<img src='".IMAGES."smiley/more/razz.gif' alt='smiley' />", 
    389         "#\:cry\:#si" => "<img src='".IMAGES."smiley/more/cry.gif' alt='smiley' />", 
    390         "#\:evil\:#si" => "<img src='".IMAGES."smiley/more/evil.gif' alt='smiley' />", 
    391         "#\:twisted\:#si" => "<img src='".IMAGES."smiley/more/icon_twisted.gif' alt='smiley' />", 
    392         "#\:roll\:#si" => "<img src='".IMAGES."smiley/more/rolleyes.gif' alt='smiley' />", 
    393         "#\:wink\:#si" => "<img src='".IMAGES."smiley/more/wink.gif' alt='smiley' />", 
    394         "#\;\-\)#si" => "<img src='".IMAGES."smiley/more/002.gif' alt='smiley' />", 
    395         "#\:\!\:#si" => "<img src='".IMAGES."smiley/more/exclaim.gif' alt='smiley' />", 
    396         "#\:\?\:#si" => "<img src='".IMAGES."smiley/more/question.gif' alt='smiley' />", 
    397         "#\:\?#si" => "<img src='".IMAGES."smiley/more/confused.gif' alt='smiley' />", 
    398         "#\:idea\:#si" => "<img src='".IMAGES."smiley/more/idea.gif' alt='smiley' />", 
    399         "#\:arrow\:#si" => "<img src='".IMAGES."smiley/more/arrow.gif' alt='smiley' />", 
    400         "#\:\|#si" => "<img src='".IMAGES."smiley/more/neutral.gif' alt='smiley' />", 
    401         "#\:mrgreen\:#si" => "<img src='".IMAGES."smiley/more/icon_mrgreen.gif' alt='smiley' />", 
    402         "#\:badgrin\:#si" => "<img src='".IMAGES."smiley/more/badgrin.gif' alt='smiley' />", 
    403         "#\:doubt\:#si" => "<img src='".IMAGES."smiley/more/doubt.gif' alt='smiley' />", 
    404         "#\#\-o#si" => "<img src='".IMAGES."smiley/more/eusa_doh.gif' alt='smiley' />", 
    405         "#\=P\~#si" => "<img src='".IMAGES."smiley/more/eusa_drool.gif' alt='smiley' />", 
    406         "#\:\^o#si" => "<img src='".IMAGES."smiley/more/eusa_liar.gif' alt='smiley' />", 
    407         "#\[\-X#si" => "<img src='".IMAGES."smiley/more/eusa_naughty.gif' alt='smiley' />", 
    408         "#\[\-o\<\;#si" => "<img src='".IMAGES."smiley/more/eusa_pray.gif' alt='smiley' />", 
    409         "#8\-\[#si" => "<img src='".IMAGES."smiley/more/eusa_shifty.gif' alt='smiley' />", 
    410         "#\[\-\(#si" => "<img src='".IMAGES."smiley/more/eusa_snooty.gif' alt='smiley' />", 
    411         "#\:\-k#si" => "<img src='".IMAGES."smiley/more/eusa_think.gif' alt='smiley' />", 
    412         "#\]\(\*\,\)#si" => "<img src='".IMAGES."smiley/more/eusa_wall.gif' alt='smiley' />", 
    413 //      "#\:\-\"#si" => "<img src='".IMAGES."smiley/more/eusa_whistle.gif' alt='smiley' />", 
    414         "#O\:\)#si" => "<img src='".IMAGES."smiley/more/eusa_angel.gif' alt='smiley' />", 
    415         "#\=\;#si" => "<img src='".IMAGES."smiley/more/eusa_hand.gif' alt='smiley' />", 
    416         "#\:\-\&#si" => "<img src='".IMAGES."smiley/more/eusa_sick.gif' alt='smiley' />", 
    417         "#\:\-\(\{\|\=#si" => "<img src='".IMAGES."smiley/more/eusa_boohoo.gif' alt='smiley' />", 
    418         "#\:\-\$#si" => "<img src='".IMAGES."smiley/more/eusa_shhh.gif' alt='smiley' />", 
    419         "#\:\-s#si" => "<img src='".IMAGES."smiley/more/eusa_eh.gif' alt='smiley' />", 
    420         "#\:\-\##si" => "<img src='".IMAGES."smiley/more/eusa_silenced.gif' alt='smiley' />", 
    421         "#\:smt004#si" => "<img src='".IMAGES."smiley/more/004.gif' alt='smiley' />", 
    422         "#\:smt005#si" => "<img src='".IMAGES."smiley/more/005.gif' alt='smiley' />", 
    423         "#\:smt006#si" => "<img src='".IMAGES."smiley/more/006.gif' alt='smiley' />", 
    424         "#\:smt007#si" => "<img src='".IMAGES."smiley/more/007.gif' alt='smiley' />", 
    425         "#\:smt008#si" => "<img src='".IMAGES."smiley/more/008.gif' alt='smiley' />", 
    426         "#\:smt009#si" => "<img src='".IMAGES."smiley/more/009.gif' alt='smiley' />", 
    427         "#\:smt010#si" => "<img src='".IMAGES."smiley/more/010.gif' alt='smiley' />", 
    428         "#\:smt011#si" => "<img src='".IMAGES."smiley/more/011.gif' alt='smiley' />", 
    429         "#\:smt012#si" => "<img src='".IMAGES."smiley/more/012.gif' alt='smiley' />", 
    430         "#\:smt013#si" => "<img src='".IMAGES."smiley/more/013.gif' alt='smiley' />", 
    431         "#\:smt016#si" => "<img src='".IMAGES."smiley/more/016.gif' alt='smiley' />", 
    432         "#\:smt017#si" => "<img src='".IMAGES."smiley/more/017.gif' alt='smiley' />", 
    433         "#\:smt019#si" => "<img src='".IMAGES."smiley/more/019.gif' alt='smiley' />", 
    434         "#\:smt020#si" => "<img src='".IMAGES."smiley/more/020.gif' alt='smiley' />", 
    435         "#\:smt021#si" => "<img src='".IMAGES."smiley/more/021.gif' alt='smiley' />", 
    436         "#\:smt023#si" => "<img src='".IMAGES."smiley/more/023.gif' alt='smiley' />", 
    437         "#\:smt024#si" => "<img src='".IMAGES."smiley/more/024.gif' alt='smiley' />", 
    438         "#\:smt025#si" => "<img src='".IMAGES."smiley/more/025.gif' alt='smiley' />", 
    439         "#\:smt026#si" => "<img src='".IMAGES."smiley/more/026.gif' alt='smiley' />", 
    440         "#\:smt027#si" => "<img src='".IMAGES."smiley/more/027.gif' alt='smiley' />", 
    441         "#\:smt028#si" => "<img src='".IMAGES."smiley/more/028.gif' alt='smiley' />", 
    442         "#\:smt029#si" => "<img src='".IMAGES."smiley/more/029.gif' alt='smiley' />", 
    443         "#\:smt030#si" => "<img src='".IMAGES."smiley/more/030.gif' alt='smiley' />", 
    444         "#\:smt031#si" => "<img src='".IMAGES."smiley/more/031.gif' alt='smiley' />", 
    445         "#\:smt032#si" => "<img src='".IMAGES."smiley/more/032.gif' alt='smiley' />", 
    446         "#\:smt033#si" => "<img src='".IMAGES."smiley/more/033.gif' alt='smiley' />", 
    447         "#\:smt034#si" => "<img src='".IMAGES."smiley/more/034.gif' alt='smiley' />", 
    448         "#\:smt035#si" => "<img src='".IMAGES."smiley/more/035.gif' alt='smiley' />", 
    449         "#\:smt036#si" => "<img src='".IMAGES."smiley/more/036.gif' alt='smiley' />", 
    450         "#\:smt037#si" => "<img src='".IMAGES."smiley/more/037.gif' alt='smiley' />", 
    451         "#\:smt038#si" => "<img src='".IMAGES."smiley/more/038.gif' alt='smiley' />", 
    452         "#\:smt039#si" => "<img src='".IMAGES."smiley/more/039.gif' alt='smiley' />", 
    453         "#\:smt040#si" => "<img src='".IMAGES."smiley/more/040.gif' alt='smiley' />", 
    454         "#\:smt041#si" => "<img src='".IMAGES."smiley/more/041.gif' alt='smiley' />", 
    455         "#\:smt042#si" => "<img src='".IMAGES."smiley/more/042.gif' alt='smiley' />", 
    456         "#\:smt043#si" => "<img src='".IMAGES."smiley/more/043.gif' alt='smiley' />", 
    457         "#\:smt044#si" => "<img src='".IMAGES."smiley/more/044.gif' alt='smiley' />", 
    458         "#\:smt045#si" => "<img src='".IMAGES."smiley/more/045.gif' alt='smiley' />", 
    459         "#\:smt046#si" => "<img src='".IMAGES."smiley/more/046.gif' alt='smiley' />", 
    460         "#\:smt047#si" => "<img src='".IMAGES."smiley/more/047.gif' alt='smiley' />", 
    461         "#\:smt048#si" => "<img src='".IMAGES."smiley/more/048.gif' alt='smiley' />", 
    462         "#\:smt049#si" => "<img src='".IMAGES."smiley/more/049.gif' alt='smiley' />", 
    463         "#\:smt050#si" => "<img src='".IMAGES."smiley/more/050.gif' alt='smiley' />", 
    464         "#\:smt051#si" => "<img src='".IMAGES."smiley/more/051.gif' alt='smiley' />", 
    465         "#\:smt052#si" => "<img src='".IMAGES."smiley/more/052.gif' alt='smiley' />", 
    466         "#\:smt053#si" => "<img src='".IMAGES."smiley/more/053.gif' alt='smiley' />", 
    467         "#\:smt054#si" => "<img src='".IMAGES."smiley/more/054.gif' alt='smiley' />", 
    468         "#\:smt055#si" => "<img src='".IMAGES."smiley/more/055.gif' alt='smiley' />", 
    469         "#\:smt056#si" => "<img src='".IMAGES."smiley/more/056.gif' alt='smiley' />", 
    470         "#\:smt057#si" => "<img src='".IMAGES."smiley/more/057.gif' alt='smiley' />", 
    471         "#\:smt058#si" => "<img src='".IMAGES."smiley/more/058.gif' alt='smiley' />", 
    472         "#\:smt059#si" => "<img src='".IMAGES."smiley/more/059.gif' alt='smiley' />", 
    473         "#\:smt060#si" => "<img src='".IMAGES."smiley/more/060.gif' alt='smiley' />", 
    474         "#\:smt061#si" => "<img src='".IMAGES."smiley/more/061.gif' alt='smiley' />", 
    475         "#\:smt062#si" => "<img src='".IMAGES."smiley/more/062.gif' alt='smiley' />", 
    476         "#\:smt063#si" => "<img src='".IMAGES."smiley/more/063.gif' alt='smiley' />", 
    477         "#\:smt064#si" => "<img src='".IMAGES."smiley/more/064.gif' alt='smiley' />", 
    478         "#\:smt065#si" => "<img src='".IMAGES."smiley/more/065.gif' alt='smiley' />", 
    479         "#\:smt066#si" => "<img src='".IMAGES."smiley/more/066.gif' alt='smiley' />", 
    480         "#\:smt067#si" => "<img src='".IMAGES."smiley/more/067.gif' alt='smiley' />", 
    481         "#\:smt068#si" => "<img src='".IMAGES."smiley/more/068.gif' alt='smiley' />", 
    482         "#\:smt069#si" => "<img src='".IMAGES."smiley/more/069.gif' alt='smiley' />", 
    483         "#\:smt070#si" => "<img src='".IMAGES."smiley/more/070.gif' alt='smiley' />", 
    484         "#\:smt073#si" => "<img src='".IMAGES."smiley/more/073.gif' alt='smiley' />", 
    485         "#\:smt074#si" => "<img src='".IMAGES."smiley/more/074.gif' alt='smiley' />", 
    486         "#\:smt075#si" => "<img src='".IMAGES."smiley/more/075.gif' alt='smiley' />", 
    487         "#\:smt076#si" => "<img src='".IMAGES."smiley/more/076.gif' alt='smiley' />", 
    488         "#\:smt077#si" => "<img src='".IMAGES."smiley/more/077.gif' alt='smiley' />", 
    489         "#\:smt078#si" => "<img src='".IMAGES."smiley/more/078.gif' alt='smiley' />", 
    490         "#\:smt079#si" => "<img src='".IMAGES."smiley/more/079.gif' alt='smiley' />", 
    491         "#\:smt080#si" => "<img src='".IMAGES."smiley/more/080.gif' alt='smiley' />", 
    492         "#\:smt081#si" => "<img src='".IMAGES."smiley/more/081.gif' alt='smiley' />", 
    493         "#\:smt082#si" => "<img src='".IMAGES."smiley/more/082.gif' alt='smiley' />", 
    494         "#\:smt083#si" => "<img src='".IMAGES."smiley/more/083.gif' alt='smiley' />", 
    495         "#\:smt084#si" => "<img src='".IMAGES."smiley/more/084.gif' alt='smiley' />", 
    496         "#\:smt085#si" => "<img src='".IMAGES."smiley/more/085.gif' alt='smiley' />", 
    497         "#\:smt086#si" => "<img src='".IMAGES."smiley/more/086.gif' alt='smiley' />", 
    498         "#\:smt087#si" => "<img src='".IMAGES."smiley/more/087.gif' alt='smiley' />", 
    499         "#\:smt088#si" => "<img src='".IMAGES."smiley/more/088.gif' alt='smiley' />", 
    500         "#\:smt089#si" => "<img src='".IMAGES."smiley/more/089.gif' alt='smiley' />", 
    501         "#\:smt090#si" => "<img src='".IMAGES."smiley/more/090.gif' alt='smiley' />", 
    502         "#\:smt091#si" => "<img src='".IMAGES."smiley/more/091.gif' alt='smiley' />", 
    503         "#\:smt092#si" => "<img src='".IMAGES."smiley/more/092.gif' alt='smiley' />", 
    504         "#\:smt093#si" => "<img src='".IMAGES."smiley/more/093.gif' alt='smiley' />", 
    505         "#\:smt084#si" => "<img src='".IMAGES."smiley/more/094.gif' alt='smiley' />", 
    506         "#\:smt095#si" => "<img src='".IMAGES."smiley/more/095.gif' alt='smiley' />", 
    507         "#\:smt096#si" => "<img src='".IMAGES."smiley/more/096.gif' alt='smiley' />", 
    508         "#\:smt097#si" => "<img src='".IMAGES."smiley/more/097.gif' alt='smiley' />", 
    509         "#\:smt098#si" => "<img src='".IMAGES."smiley/more/098.gif' alt='smiley' />", 
    510         "#\:smt099#si" => "<img src='".IMAGES."smiley/more/099.gif' alt='smiley' />", 
    511         "#\:smt101#si" => "<img src='".IMAGES."smiley/more/101.gif' alt='smiley' />", 
    512         "#\:smt103#si" => "<img src='".IMAGES."smiley/more/103.gif' alt='smiley' />", 
    513         "#\:smt104#si" => "<img src='".IMAGES."smiley/more/104.gif' alt='smiley' />", 
    514         "#\:smt105#si" => "<img src='".IMAGES."smiley/more/105.gif' alt='smiley' />", 
    515         "#\:smt106#si" => "<img src='".IMAGES."smiley/more/106.gif' alt='smiley' />", 
    516         "#\:smt107#si" => "<img src='".IMAGES."smiley/more/107.gif' alt='smiley' />", 
    517         "#\:smt108#si" => "<img src='".IMAGES."smiley/more/108.gif' alt='smiley' />", 
    518         "#\:smt109#si" => "<img src='".IMAGES."smiley/more/109.gif' alt='smiley' />", 
    519         "#\:smt110#si" => "<img src='".IMAGES."smiley/more/110.gif' alt='smiley' />", 
    520         "#\:smt111#si" => "<img src='".IMAGES."smiley/more/111.gif' alt='smiley' />", 
    521         "#\:smt112#si" => "<img src='".IMAGES."smiley/more/112.gif' alt='smiley' />", 
    522         "#\:smt113#si" => "<img src='".IMAGES."smiley/more/113.gif' alt='smiley' />", 
    523         "#\:smt114#si" => "<img src='".IMAGES."smiley/more/114.gif' alt='smiley' />", 
    524         "#\:smt115#si" => "<img src='".IMAGES."smiley/more/115.gif' alt='smiley' />", 
    525         "#\:smt116#si" => "<img src='".IMAGES."smiley/more/116.gif' alt='smiley' />", 
    526         "#\:smt117#si" => "<img src='".IMAGES."smiley/more/117.gif' alt='smiley' />", 
    527         "#\:smt118#si" => "<img src='".IMAGES."smiley/more/118.gif' alt='smiley' />", 
    528         "#\:smt119#si" => "<img src='".IMAGES."smiley/more/119.gif' alt='smiley' />", 
    529         "#\:smt120#si" => "<img src='".IMAGES."smiley/more/120.gif' alt='smiley' />", 
    530         "#\:\)#si" => "<img src='".IMAGES."smiley/smile.gif' alt='smiley' />" 
    531     ); 
    532     foreach($smiley as $key=>$smiley_img) { 
    533         $message = preg_replace($key, $smiley_img, $message); 
    534     } 
    535     return $message; 
    536 } 
    537  
    538 // internal function: preg_replace_callback for parseubb, to validate the URL found in [url] 
    539 function _parseubb_checkurl($matches) { 
    540  
    541     // if it's a old-style bbcode (not [url=][/url] but [url][/url]), convert it before checking 
    542     if (empty($matches[2])) { 
    543         $matches[2] = $matches[3]; 
    544     } 
     368// validate an IP address 
     369function isIP($value){ 
     370    return preg_match("/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/", $value); 
     371} 
     372 
     373// validate an URL 
     374function isURL($value, $onlyhttp=false) { 
    545375 
    546376    // Build the regex to check the URL 
    547     $scheme = "(https?|s?ftp|mailto|svn|cvs|callto|mms|skype)\:\/\/";           // SCHEMES supported 
     377    if ($onlyhttp) { 
     378        $scheme = "(https?)\:\/\/";                                             // HTTP SCHEMES supported 
     379    } else { 
     380        $scheme = "(https?|s?ftp|mailto|svn|cvs|callto|mms|skype)\:\/\/";       // ALL SCHEMES supported 
     381    } 
    548382    $urlregex = "^(".$scheme.")?";                                              // make the scheme optional 
    549383    $urlregex .= "([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?";   // USERID + PASSWORD (optional) 
     
    553387    $urlregex .= "(\?[a-z+&\$_.-][a-z0-9;:@/&%=+\$_.-]*)?";                     // GET querystring (optional) 
    554388    $urlregex .= "(#[a-z_.-][a-z0-9+\$_.-]*)?\$";                               // ANCHOR (optional) 
     389    // validate the URL 
     390    return eregi($urlregex, $value); 
     391} 
     392 
     393// Parse smiley bbcode into HTML images 
     394function parsesmileys($message) { 
     395    $smiley = array( 
     396        "\:oops\:" => "<img src='".IMAGES."smiley/more/redface.gif' alt='smiley' />", 
     397        "\:doubt\:" => "<img src='".IMAGES."smiley/more/doubt.gif' alt='smiley' />", 
     398        "\:thumbleft" => "<img src='".IMAGES."smiley/more/icon_thumleft.gif' alt='smiley' />", 
     399        "\:thumbright" => "<img src='".IMAGES."smiley/more/icon_thumright.gif' alt='smiley' />", 
     400        "\:smt004" => "<img src='".IMAGES."smiley/more/004.gif' alt='smiley' />", 
     401        "\:smt005" => "<img src='".IMAGES."smiley/more/005.gif' alt='smiley' />", 
     402        "\:smt006" => "<img src='".IMAGES."smiley/more/006.gif' alt='smiley' />", 
     403        "\:smt007" => "<img src='".IMAGES."smiley/more/007.gif' alt='smiley' />", 
     404        "\:smt008" => "<img src='".IMAGES."smiley/more/008.gif' alt='smiley' />", 
     405        "\:smt009" => "<img src='".IMAGES."smiley/more/009.gif' alt='smiley' />", 
     406        "\:smt010" => "<img src='".IMAGES."smiley/more/010.gif' alt='smiley' />", 
     407        "\:smt011" => "<img src='".IMAGES."smiley/more/011.gif' alt='smiley' />", 
     408        "\:smt012" => "<img src='".IMAGES."smiley/more/012.gif' alt='smiley' />", 
     409        "\:smt013" => "<img src='".IMAGES."smiley/more/013.gif' alt='smiley' />", 
     410        "\:smt014" => "<img src='".IMAGES."smiley/more/014.gif' alt='smiley' />", 
     411        "\:smt016" => "<img src='".IMAGES."smiley/more/016.gif' alt='smiley' />", 
     412        "\:smt017" => "<img src='".IMAGES."smiley/more/017.gif' alt='smiley' />", 
     413        "\:smt018" => "<img src='".IMAGES."smiley/more/018.gif' alt='smiley' />", 
     414        "\:smt019" => "<img src='".IMAGES."smiley/more/019.gif' alt='smiley' />", 
     415        "\:smt020" => "<img src='".IMAGES."smiley/more/020.gif' alt='smiley' />", 
     416        "\:smt021" => "<img src='".IMAGES."smiley/more/021.gif' alt='smiley' />", 
     417        "\:smt022" => "<img src='".IMAGES."smiley/more/022.gif' alt='smiley' />", 
     418        "\:smt023" => "<img src='".IMAGES."smiley/more/023.gif' alt='smiley' />", 
     419        "\:smt024" => "<img src='".IMAGES."smiley/more/024.gif' alt='smiley' />", 
     420        "\:smt025" => "<img src='".IMAGES."smiley/more/025.gif' alt='smiley' />", 
     421        "\:smt026" => "<img src='".IMAGES."smiley/more/026.gif' alt='smiley' />", 
     422        "\:smt027" => "<img src='".IMAGES."smiley/more/027.gif' alt='smiley' />", 
     423        "\:smt028" => "<img src='".IMAGES."smiley/more/028.gif' alt='smiley' />", 
     424        "\:smt029" => "<img src='".IMAGES."smiley/more/029.gif' alt='smiley' />", 
     425        "\:smt030" => "<img src='".IMAGES."smiley/more/030.gif' alt='smiley' />", 
     426        "\:smt031" => "<img src='".IMAGES."smiley/more/031.gif' alt='smiley' />", 
     427        "\:smt032" => "<img src='".IMAGES."smiley/more/032.gif' alt='smiley' />", 
     428        "\:smt033" => "<img src='".IMAGES."smiley/more/033.gif' alt='smiley' />", 
     429        "\:smt034" => "<img src='".IMAGES."smiley/more/034.gif' alt='smiley' />", 
     430        "\:smt035" => "<img src='".IMAGES."smiley/more/035.gif' alt='smiley' />", 
     431        "\:smt036" => "<img src='".IMAGES."smiley/more/036.gif' alt='smiley' />", 
     432        "\:smt037" => "<img src='".IMAGES."smiley/more/037.gif' alt='smiley' />", 
     433        "\:smt038" => "<img src='".IMAGES."smiley/more/038.gif' alt='smiley' />", 
     434        "\:smt039" => "<img src='".IMAGES."smiley/more/039.gif' alt='smiley' />", 
     435        "\:smt040" => "<img src='".IMAGES."smiley/more/040.gif' alt='smiley' />", 
     436        "\:smt041" => "<img src='".IMAGES."smiley/more/041.gif' alt='smiley' />", 
     437        "\:smt042" => "<img src='".IMAGES."smiley/more/042.gif' alt='smiley' />", 
     438        "\:smt043" => "<img src='".IMAGES."smiley/more/043.gif' alt='smiley' />", 
     439        "\:smt044" => "<img src='".IMAGES."smiley/more/044.gif' alt='smiley' />", 
     440        "\:smt045" => "<img src='".IMAGES."smiley/more/045.gif' alt='smiley' />", 
     441        "\:smt046" => "<img src='".IMAGES."smiley/more/046.gif' alt='smiley' />", 
     442        "\:smt047" => "<img src='".IMAGES."smiley/more/047.gif' alt='smiley' />", 
     443        "\:smt048" => "<img src='".IMAGES."smiley/more/048.gif' alt='smiley' />", 
     444        "\:smt049" => "<img src='".IMAGES."smiley/more/049.gif' alt='smiley' />", 
     445        "\:smt050" => "<img src='".IMAGES."smiley/more/050.gif' alt='smiley' />", 
     446        "\:smt051" => "<img src='".IMAGES."smiley/more/051.gif' alt='smiley' />", 
     447        "\:smt052" => "<img src='".IMAGES."smiley/more/052.gif' alt='smiley' />", 
     448        "\:smt053" => "<img src='".IMAGES."smiley/more/053.gif' alt='smiley' />", 
     449        "\:smt054" => "<img src='".IMAGES."smiley/more/054.gif' alt='smiley' />", 
     450        "\:smt055" => "<img src='".IMAGES."smiley/more/055.gif' alt='smiley' />", 
     451        "\:smt056" => "<img src='".IMAGES."smiley/more/056.gif' alt='smiley' />", 
     452        "\:smt057" => "<img src='".IMAGES."smiley/more/057.gif' alt='smiley' />", 
     453        "\:smt058" => "<img src='".IMAGES."smiley/more/058.gif' alt='smiley' />", 
     454        "\:smt059" => "<img src='".IMAGES."smiley/more/059.gif' alt='smiley' />", 
     455        "\:smt060" => "<img src='".IMAGES."smiley/more/060.gif' alt='smiley' />", 
     456        "\:smt061" => "<img src='".IMAGES."smiley/more/061.gif' alt='smiley' />", 
     457        "\:smt062" => "<img src='".IMAGES."smiley/more/062.gif' alt='smiley' />", 
     458        "\:smt063" => "<img src='".IMAGES."smiley/more/063.gif' alt='smiley' />", 
     459        "\:smt064" => "<img src='".IMAGES."smiley/more/064.gif' alt='smiley' />", 
     460        "\:smt065" => "<img src='".IMAGES."smiley/more/065.gif' alt='smiley' />", 
     461        "\:smt066" => "<img src='".IMAGES."smiley/more/066.gif' alt='smiley' />", 
     462        "\:smt067" => "<img src='".IMAGES."smiley/more/067.gif' alt='smiley' />", 
     463        "\:smt068" => "<img src='".IMAGES."smiley/more/068.gif' alt='smiley' />", 
     464        "\:smt069" => "<img src='".IMAGES."smiley/more/069.gif' alt='smiley' />", 
     465        "\:smt070" => "<img src='".IMAGES."smiley/more/070.gif' alt='smiley' />", 
     466        "\:smt073" => "<img src='".IMAGES."smiley/more/073.gif' alt='smiley' />", 
     467        "\:smt074" => "<img src='".IMAGES."smiley/more/074.gif' alt='smiley' />", 
     468        "\:smt075" => "<img src='".IMAGES."smiley/more/075.gif' alt='smiley' />", 
     469        "\:smt076" => "<img src='".IMAGES."smiley/more/076.gif' alt='smiley' />", 
     470        "\:smt077" => "<img src='".IMAGES."smiley/more/077.gif' alt='smiley' />", 
     471        "\:smt078" => "<img src='".IMAGES."smiley/more/078.gif' alt='smiley' />", 
     472        "\:smt079" => "<img src='".IMAGES."smiley/more/079.gif' alt='smiley' />", 
     473        "\:smt080" => "<img src='".IMAGES."smiley/more/080.gif' alt='smiley' />", 
     474        "\:smt081" => "<img src='".IMAGES."smiley/more/081.gif' alt='smiley' />", 
     475        "\:smt082" => "<img src='".IMAGES."smiley/more/082.gif' alt='smiley' />", 
     476        "\:smt083" => "<img src='".IMAGES."smiley/more/083.gif' alt='smiley' />", 
     477        "\:smt084" => "<img src='".IMAGES."smiley/more/084.gif' alt='smiley' />", 
     478        "\:smt085" => "<img src='".IMAGES."smiley/more/085.gif' alt='smiley' />", 
     479        "\:smt086" => "<img src='".IMAGES."smiley/more/086.gif' alt='smiley' />", 
     480        "\:smt087" => "<img src='".IMAGES."smiley/more/087.gif' alt='smiley' />", 
     481        "\:smt088" => "<img src='".IMAGES."smiley/more/088.gif' alt='smiley' />", 
     482        "\:smt089" => "<img src='".IMAGES."smiley/more/089.gif' alt='smiley' />", 
     483        "\:smt090" => "<img src='".IMAGES."smiley/more/090.gif' alt='smiley' />", 
     484        "\:smt091" => "<img src='".IMAGES."smiley/more/091.gif' alt='smiley' />", 
     485        "\:smt092" => "<img src='".IMAGES."smiley/more/092.gif' alt='smiley' />", 
     486        "\:smt093" => "<img src='".IMAGES."smiley/more/093.gif' alt='smiley' />", 
     487        "\:smt084" => "<img src='".IMAGES."smiley/more/094.gif' alt='smiley' />", 
     488        "\:smt095" => "<img src='".IMAGES."smiley/more/095.gif' alt='smiley' />", 
     489        "\:smt096" => "<img src='".IMAGES."smiley/more/096.gif' alt='smiley' />", 
     490        "\:smt097" => "<img src='".IMAGES."smiley/more/097.gif' alt='smiley' />", 
     491        "\:smt098" => "<img src='".IMAGES."smiley/more/098.gif' alt='smiley' />", 
     492        "\:smt099" => "<img src='".IMAGES."smiley/more/099.gif' alt='smiley' />", 
     493        "\:smt101" => "<img src='".IMAGES."smiley/more/101.gif' alt='smiley' />", 
     494        "\:smt103" => "<img src='".IMAGES."smiley/more/103.gif' alt='smiley' />", 
     495        "\:smt104" => "<img src='".IMAGES."smiley/more/104.gif' alt='smiley' />", 
     496        "\:smt105" => "<img src='".IMAGES."smiley/more/105.gif' alt='smiley' />", 
     497        "\:smt106" => "<img src='".IMAGES."smiley/more/106.gif' alt='smiley' />", 
     498        "\:smt107" => "<img src='".IMAGES."smiley/more/107.gif' alt='smiley' />", 
     499        "\:smt108" => "<img src='".IMAGES."smiley/more/108.gif' alt='smiley' />", 
     500        "\:smt109" => "<img src='".IMAGES."smiley/more/109.gif' alt='smiley' />", 
     501        "\:smt110" => "<img src='".IMAGES."smiley/more/110.gif' alt='smiley' />", 
     502        "\:smt111" => "<img src='".IMAGES."smiley/more/111.gif' alt='smiley' />", 
     503        "\:smt112" => "<img src='".IMAGES."smiley/more/112.gif' alt='smiley' />", 
     504        "\:smt113" => "<img src='".IMAGES."smiley/more/113.gif' alt='smiley' />", 
     505        "\:smt114" => "<img src='".IMAGES."smiley/more/114.gif' alt='smiley' />", 
     506        "\:smt115" => "<img src='".IMAGES."smiley/more/115.gif' alt='smiley' />", 
     507        "\:smt116" => "<img src='".IMAGES."smiley/more/116.gif' alt='smiley' />", 
     508        "\:smt117" => "<img src='".IMAGES."smiley/more/117.gif' alt='smiley' />", 
     509        "\:smt118" => "<img src='".IMAGES."smiley/more/118.gif' alt='smiley' />", 
     510        "\:smt119" => "<img src='".IMAGES."smiley/more/119.gif' alt='smiley' />", 
     511        "\:smt120" => "<img src='".IMAGES."smiley/more/120.gif' alt='smiley' />", 
     512        "\:boring" => "<img src='".IMAGES."smiley/more/015.gif' alt='smiley' />", 
     513        "\:smt071" => "<img src='".IMAGES."smiley/more/071.gif' alt='smiley' />", 
     514        "\:smt102" => "<img src='".IMAGES."smiley/more/102.gif' alt='smiley' />", 
     515        "\:smt100" => "<img src='".IMAGES."smiley/more/100.gif' alt='smiley' />", 
     516        "\:shock\:" => "<img src='".IMAGES."smiley/more/shock.gif' alt='smiley' />", 
     517        "\:lol\:" => "<img src='".IMAGES."smiley/more/lol.gif' alt='smiley' />", 
     518        "\:razz\:" => "<img src='".IMAGES."smiley/more/razz.gif' alt='smiley' />", 
     519        "\:cry\:" => "<img src='".IMAGES."smiley/more/cry.gif' alt='smiley' />", 
     520        "\:evil\:" => "<img src='".IMAGES."smiley/more/evil.gif' alt='smiley' />", 
     521        "\:twisted\:" => "<img src='".IMAGES."smiley/more/icon_twisted.gif' alt='smiley' />", 
     522        "\:roll\:" => "<img src='".IMAGES."smiley/more/rolleyes.gif' alt='smiley' />", 
     523        "\:wink\:" => "<img src='".IMAGES."smiley/more/wink.gif' alt='smiley' />", 
     524        "\:idea\:" => "<img src='".IMAGES."smiley/more/idea.gif' alt='smiley' />", 
     525        "\:arrow\:" => "<img src='".IMAGES."smiley/more/arrow.gif' alt='smiley' />", 
     526        "\:mrgreen\:" => "<img src='".IMAGES."smiley/more/icon_mrgreen.gif' alt='smiley' />", 
     527        "\:badgrin\:" => "<img src='".IMAGES."smiley/more/badgrin.gif' alt='smiley' />", 
     528        "\;\)" => "<img src='".IMAGES."smiley/wink.gif' alt='smiley' />", 
     529        "\:\(" => "<img src='".IMAGES."smiley/sad.gif' alt='smiley' />", 
     530        "\:\|" => "<img src='".IMAGES."smiley/frown.gif' alt='smiley' />", 
     531        "\:o" => "<img src='".IMAGES."smiley/shock.gif' alt='smiley' />", 
     532        "\:p" => "<img src='".IMAGES."smiley/pfft.gif' alt='smiley' />", 
     533        "b\)" => "<img src='".IMAGES."smiley/cool.gif' alt='smiley' />", 
     534        "\:d" => "<img src='".IMAGES."smiley/grin.gif' alt='smiley' />", 
     535        "\:@" => "<img src='".IMAGES."smiley/angry.gif' alt='smiley' />", 
     536        "=D&gt;" => "<img src='".IMAGES."smiley/more/eusa_clap.gif' alt='smiley' />", 
     537        "\\\:D/" => "<img src='".IMAGES."smiley/more/eusa_dance.gif' alt='smiley' />", 
     538        "\:D" => "<img src='".IMAGES."smiley/more/biggrin.gif' alt='smiley' />", 
     539        "\:\-D" => "<img src='".IMAGES."smiley/more/003.gif' alt='smiley' />", 
     540        "\:\-\)" => "<img src='".IMAGES."smiley/more/001.gif' alt='smiley' />", 
     541        "\:\(" => "<img src='".IMAGES."smiley/more/sad.gif' alt='smiley' />", 
     542        "\:o" => "<img src='".IMAGES."smiley/more/surprised.gif' alt='smiley' />", 
     543        "8\)" => "<img src='".IMAGES."smiley/more/cool.gif' alt='smiley' />", 
     544        "\:x" => "<img src='".IMAGES."smiley/more/mad.gif' alt='smiley' />", 
     545        "\:\-x" => "<img src='".IMAGES."smiley/more/icon_mad.gif' alt='smiley' />", 
     546        "\:P" => "<img src='".IMAGES."smiley/more/icon_razz.gif' alt='smiley' />", 
     547        "\;\-\)" => "<img src='".IMAGES."smiley/more/002.gif' alt='smiley' />", 
     548        "\:\!\:" => "<img src='".IMAGES."smiley/more/exclaim.gif' alt='smiley' />", 
     549        "\:\?\:" => "<img src='".IMAGES."smiley/more/question.gif' alt='smiley' />", 
     550        "\:\?" => "<img src='".IMAGES."smiley/more/confused.gif' alt='smiley' />", 
     551        "\:\|" => "<img src='".IMAGES."smiley/more/neutral.gif' alt='smiley' />", 
     552        "\#\-o" => "<img src='".IMAGES."smiley/more/eusa_doh.gif' alt='smiley' />", 
     553        "\=P\~" => "<img src='".IMAGES."smiley/more/eusa_drool.gif' alt='smiley' />", 
     554        "\:\^o" => "<img src='".IMAGES."smiley/more/eusa_liar.gif' alt='smiley' />", 
     555        "\[\-X" => "<img src='".IMAGES."smiley/more/eusa_naughty.gif' alt='smiley' />", 
     556        "\[\-o\<\;" => "<img src='".IMAGES."smiley/more/eusa_pray.gif' alt='smiley' />", 
     557        "8\-\[" => "<img src='".IMAGES."smiley/more/eusa_shifty.gif' alt='smiley' />", 
     558        "\[\-\(" => "<img src='".IMAGES."smiley/more/eusa_snooty.gif' alt='smiley' />", 
     559        "\:\-k" => "<img src='".IMAGES."smiley/more/eusa_think.gif' alt='smiley' />", 
     560        "\]\(\*\,\)" => "<img src='".IMAGES."smiley/more/eusa_wall.gif' alt='smiley' />", 
     561        "\:\-\"" => "<img src='".IMAGES."smiley/more/eusa_whistle.gif' alt='smiley' />", 
     562        "O\:\)" => "<img src='".IMAGES."smiley/more/eusa_angel.gif' alt='smiley' />", 
     563        "\=\;" => "<img src='".IMAGES."smiley/more/eusa_hand.gif' alt='smiley' />", 
     564        "\:\-\&" => "<img src='".IMAGES."smiley/more/eusa_sick.gif' alt='smiley' />", 
     565        "\:\-\(\{\|\=" => "<img src='".IMAGES."smiley/more/eusa_boohoo.gif' alt='smiley' />", 
     566        "\:\-\$" => "<img src='".IMAGES."smiley/more/eusa_shhh.gif' alt='smiley' />", 
     567        "\:\-s" => "<img src='".IMAGES."smiley/more/eusa_eh.gif' alt='smiley' />", 
     568        "\:\-\#" => "<img src='".IMAGES."smiley/more/eusa_silenced.gif' alt='smiley' />", 
     569        "\:\)" => "<img src='".IMAGES."smiley/smile.gif' alt='smiley' />" 
     570    ); 
     571    foreach($smiley as $key=>$smiley_img) { 
     572        $search = "#([[:space:]])".$key."([[:space:]])?#si"; 
     573        $replace = "\\1".$smiley_img."\\2"; 
     574        $message = preg_replace($search, $replace, $message); 
     575    } 
     576    return $message; 
     577} 
     578 
     579// internal function: preg_replace_callback for parseubb, to validate the URL found in [url] 
     580function _parseubb_checkurl($matches) { 
     581 
     582    // if it's a old-style bbcode (not [url=][/url] but [url][/url]), convert it before checking 
     583    if (empty($matches[2])) { 
     584        $matches[2] = $matches[3]; 
     585    } 
    555586 
    556587    // validate the URL (in $matches[1]) 
    557     if (eregi($urlregex, $matches[2])) { 
     588    if (isURL($matches[2])) { 
    558589        // check if the URL is prefixed. If not, assume http:// 
    559         if (!eregi("^(".$scheme."){1}", $matches[2])) { 
     590        if (!eregi("^((https?|s?ftp|mailto|svn|cvs|callto|mms|skype)\:\/\/){1}", $matches[2])) { 
    560591            $matches[2] = "http://".$matches[2]; 
    561592        } 
     
    566597        return stripinput($matches[0]); 
    567598    } 
     599} 
     600 
     601// internal function: preg_replace_callback for parseubb, to validate the IMG found in [img] 
     602function _parseubb_checkimg($matches) { 
     603    global $locale; 
     604 
     605    // validate the URL (in $matches[1]) 
     606    if (isURL($matches[1], true)) { 
     607        if (verify_image($matches[1])) { 
     608            return "<img src=\"".$matches[1]."\" style=\"border:0px\" alt=\"\" />"; 
     609        } 
     610    } 
     611    // return a sanitized version of the orginal BBcode 
     612    return stripinput($matches[0]); 
    568613} 
    569614 
     
    580625    $text = preg_replace('#\[center\](.*?)\[/center\]#si', '<center>\1</center>', $text); 
    581626 
    582     // new youtube bbcode 
    583     $text = preg_replace('#\[youtube\](.*?)\[/youtube\]#si', '<object type="application/x-shockwave-flash" width="425" height="350" data="http://www.youtube.com/v/\1"><param name="movie" value="http://www.youtube.com/v/\1"></param><param name="wmode" value="transparent"></param></object>', $text); 
    584  
    585627    // new wiki bbcode 
    586628    if (isset($settings['wiki_forum_links']) && $settings['wiki_forum_links']) { 
    587629        // add the link to the wiki page 
    588         $text = preg_replace('#\[wiki\](.*?)\[/wiki\]#si', '<a href="'.BASEDIR.'modules/wiki/index.php?wakka=\1" class="wiki_link" title="ExiteCMS Wiki">\1</a>', $text); 
     630        $text = preg_replace('#\[wiki\](.*?)\[/wiki\]#si', '<a href="'.BASEDIR.'modules/wiki/index.php?wakka=\1" class="wiki_link" title="'.$settings['wiki_wakka_name'].'">\1</a>', $text); 
    589631    } else { 
    590632        // strip the wiki bbcode 
     
    601643    $text = preg_replace('#\[mail\]([\r\n]*)([^\s\'\";:\+]*?)([\r\n]*)\[/mail\]#si', '<a href=\'mailto:\2\'>\2</a>', $text); 
    602644    $text = preg_replace('#\[mail=([\r\n]*)([^\s\'\";:\+]*?)\](.*?)([\r\n]*)\[/mail\]#si', '<a href=\'mailto:\2\'>\3</a>', $text); 
    603      
     645    // small     
    604646    $text = preg_replace('#\[small\](.*?)\[/small\]#si', '<span class=\'small\'>\1</span>', $text); 
     647    // color 
    605648    $text = preg_replace('#\[color=(\#[0-9a-fA-F]{6}|black|blue|brown|cyan|grey|green|lime|maroon|navy|olive|orange|purple|red|silver|violet|white|yellow)\](.*?)\[/color\]#si', '<span style=\'color:\1\'>\2</span>', $text); 
    606      
     649    // new youtube bbcode 
     650    $text = preg_replace('#\[youtube\](.*?)\[/youtube\]#si', '<object type="application/x-shockwave-flash" width="425" height="350" data="http://www.youtube.com/v/\1"><param name="movie" value="http://www.youtube.com/v/\1"></param><param name="wmode" value="transparent"></param></object>', $text); 
     651    // flash movies 
    607652    $text = preg_replace('#\[flash width=([0-9]*?) height=([0-9]*?)\]([^\s\'\";:\+]*?)(\.swf)\[/flash\]#si', '<object classid=\'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\' codebase=\'http://active.macromedia.com/flash6/cabs/swflash.cab#version=6,0,0,0\' id=\'\3\4\' width=\'\1\' height=\'\2\'><param name=movie value=\'\3\4\'><param name=\'quality\' value=\'high\'><param name=\'bgcolor\' value=\'#ffffff\'><embed src=\'\3\4\' quality=\'high\' bgcolor=\'#ffffff\' width=\'\1\' height=\'\2\' type=\'application/x-shockwave-flash\' pluginspage=\'http://www.macromedia.com/go/getflashplayer\'></embed></object>', $text); 
    608     $text = preg_replace("#\[img\]((http|ftp|https|ftps)://)(.*?)(\.(jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]#sie","'<img src=\'\\1'.str_replace(array('.php','?','&','='),'','\\3').'\\4\' style=\'border:0px\' alt=\'\' />'",$text); 
    609  
     653    // images 
     654    if (ini_get('allow_url_fopen')) { 
     655        $text = preg_replace_callback('#\[img\](.*?)\[/img\]#si', '_parseubb_checkimg', $text); 
     656    } else { 
     657        $text = preg_replace("#\[img\]((http|ftp|https|ftps)://)(.*?)(\.(jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]#sie","'<img src=\'\\1'.str_replace(array('.php','?','&','='),'','\\3').'\\4\' style=\'border:0px\' alt=\'\' />'",$text); 
     658    } 
     659    // quotes 
    610660    $text = preg_replace('#\[quote=([\r\n]*)(.*?)\]#si', '<b>\2 '.$locale['199'].':</b><br />[quote]', $text); 
    611  
    612661    $qcount = substr_count($text, "[quote]"); $ccount = substr_count($text, "[code]"); 
    613662    for ($i=0;$i < $qcount;$i++) $text = preg_replace('#\[quote\](.*?)\[/quote\]#si', '<div class=\'quote\'>\1</div>', $text); 
     
    646695    $text = preg_replace('#([a-z]*)=([\`\'\"]*)javascript:#iU', '$1=$2nojavascript...', $text); 
    647696    $text = preg_replace('#([a-z]*)=([\'\"]*)vbscript:#iU', '$1=$2novbscript...', $text); 
    648         //<span style="width: expression(alert('Ping!'));"></span> (only affects ie...) 
    649697    $text = preg_replace('#(<[^>]+)style=([\`\'\"]*).*expression\([^>]*>#iU', "$1>", $text); 
    650698    $text = preg_replace('#(<[^>]+)style=([\`\'\"]*).*behaviour\([^>]*>#iU', "$1>", $text); 
     
    660708// Scan image files for malicious code 
    661709function verify_image($file) { 
    662     $txt = file_get_contents($file); 
    663710    $image_safe = true; 
    664     if (preg_match('#&(quot|lt|gt|nbsp);#i', $txt)) { $image_safe = false; } 
    665     elseif (preg_match("#&\#x([0-9a-f]+);#i", $txt)) { $image_safe = false; } 
    666     elseif (preg_match('#&\#([0-9]+);#i', $txt)) { $image_safe = false; } 
    667     elseif (preg_match("#([a-z]*)=([\`\'\"]*)script:#iU", $txt)) { $image_safe = false; } 
    668     elseif (preg_match("#([a-z]*)=([\`\'\"]*)javascript:#iU", $txt)) { $image_safe = false; } 
    669     elseif (preg_match("#([a-z]*)=([\'\"]*)vbscript:#iU", $txt)) { $image_safe = false; } 
    670     elseif (preg_match("#(<[^>]+)style=([\`\'\"]*).*expression\([^>]*>#iU", $txt)) { $image_safe = false; } 
    671     elseif (preg_match("#(<[^>]+)style=([\`\'\"]*).*behaviour\([^>]*>#iU", $txt)) { $image_safe = false; } 
    672     elseif (preg_match("#</*(applet|link|style|script|iframe|frame|frameset)[^>]*>#i", $txt)) { $image_safe = false; } 
     711    if (file_exists($file)) { 
     712        $er = error_reporting(0); 
     713        // get info about the image 
     714        $imginfo = @getimagesize($file); 
     715        // get the file contents 
     716        $txt = file_get_contents($file); 
     717        error_reporting($er); 
     718        if ($imginfo === false) { $image_safe = false; } 
     719        if ($txt === false) { $image_safe = false; } 
     720        elseif (preg_match('#&(quot|lt|gt|nbsp);#i', $txt)) { $image_safe = false; } 
     721        elseif (preg_match("#&\#x([0-9a-f]+);#i", $txt)) { $image_safe = false; } 
     722        elseif ($imginfo[2] != 5 && preg_match('#&\#([0-9]+);#i', $txt)) { $image_safe = false; }   // skip for psd files 
     723        elseif (preg_match("#([a-z]*)=([\`\'\"]*)script:#iU", $txt)) { $image_safe = false; } 
     724        elseif (preg_match("#([a-z]*)=([\`\'\"]*)javascript:#iU", $txt)) { $image_safe = false; } 
     725        elseif (preg_match("#([a-z]*)=([\'\"]*)vbscript:#iU", $txt)) { $image_safe = false; } 
     726        elseif (preg_match("#(<[^>]+)style=([\`\'\"]*).*expression\([^>]*>#iU", $txt)) { $image_safe = false; } 
     727        elseif (preg_match("#(<[^>]+)style=([\`\'\"]*).*behaviour\([^>]*>#iU", $txt)) { $image_safe = false; } 
     728        elseif (preg_match("#</*(applet|link|style|script|iframe|frame|frameset)[^>]*>#i", $txt)) { $image_safe = false; } 
     729    } 
    673730    return $image_safe; 
    674731} 
     
    9811038    } 
    9821039} 
     1040 
     1041 
     1042// replacement for die() 
     1043function terminate($text) { 
     1044    die("<div style='font-family:Verdana,Sans-serif;font-size:11px;text-align:center;'>$text</div>"); 
     1045} 
    9831046?> 
Note: See TracChangeset for help on using the changeset viewer.