Advertisement
Guest User

Untitled

a guest
Oct 25th, 2014
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.22 KB | None | 0 0
  1. <?php
  2. //
  3. // CF Image Hosting Script
  4. // --------------------------
  5. //
  6. // Author: codefuture.co.uk
  7. // Version: 1.4.2
  8. // Date: 17 June 2011
  9. //
  10. // download the latest version from - http://codefuture.co.uk/projects/imagehost/
  11. //
  12. // Copyright (c) 2011 codefuture.co.uk
  13. // This file is part of the CF Image Hosting Script.
  14. //
  15. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  16. // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17. // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
  18. // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  19. // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
  20. // OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  21. //
  22. //
  23. // You may not modify and/or remove any copyright notices or labels on the software on each
  24. // page (unless full license is purchase) and in the header of each script source file.
  25. //
  26. // You should have received a full copy of the LICENSE AGREEMENT along with
  27. // CF Image Hosting Script. If not, see http://codefuture.co.uk/projects/imagehost/license/
  28. //
  29. ////////////////////////////////////////////////////////////////////////////////////
  30. //debug
  31. error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
  32. // Hide all error messages from the public
  33. //error_reporting(E_ALL^E_NOTICE);
  34. //ini_set('display_errors', 0);
  35.  
  36. // stop the nav to config.php
  37. if (basename($_SERVER['PHP_SELF']) == 'config.php'){
  38. header('Location: ../index.php');
  39. exit();
  40. }
  41.  
  42. define( 'CFIHP', '1.4.2' );
  43.  
  44. ///////////////////////////////////////////////////////////////////////////////
  45. // Fixed Settings
  46.  
  47. // Upload directory
  48. $DIR_UPLOAD = 'upload/';
  49. $DIR_IMAGE = $DIR_UPLOAD.'images/';
  50. $DIR_THUMB_MID = $DIR_UPLOAD.'thumbs/';
  51. $DIR_THUMB = $DIR_UPLOAD.'smallthumbs/';
  52. $DIR_DATA = $DIR_UPLOAD.'data/';
  53. $DIR_BANDWIDTH = $DIR_UPLOAD.'bandwidth/';
  54. $DIR_TEMP = $DIR_UPLOAD.'temp/';
  55.  
  56. // gallery row
  57. $ROW_GALLERY = 4;
  58. $ROW_RANDIMG = 4;
  59. $CAPTCHA_BG = '';
  60.  
  61. // upload image size(pixels)
  62. $IMG_MIN_SIZE = '16';
  63. $IMG_MAX_SIZE = '2500';
  64.  
  65. //setMemoryForImage in resize.class.php only needed if max image size is bigger
  66. // them 2500 most of the time..
  67. $IMG_MEMORY_LIMIT = FALSE;
  68. $IMG_TWEAK_FACTOR = 1.8; //setMemoryForImage multiplier
  69.  
  70. //Thumb settins(both)
  71. $PNG_SAVE_EXT = 'png'; // used for PSD and any png Thumb
  72. $PNG_QUALITY = 60; // used for PSD and any png Thumb (1-100)
  73. $JPG_SAVE_EXT = 'jpg'; // used for BMP and any png Thumb
  74. $JPG_QUALITY = 90; // used for BMP and any png Thumb (1-100)
  75.  
  76.  
  77. //Small Thumb settins
  78. $THUMB_OPTION = 'auto'; //crop, auto, exact
  79. $THUMB_MAX_WIDTH = 150;
  80. $THUMB_MAX_HEIGHT = 150;
  81.  
  82. //Thumb settins
  83. $THUMB_MID_OPTION = 'auto'; //crop, auto, exact
  84. $THUMB_MID_MAX_WIDTH = 320;
  85. $THUMB_MID_MAX_HEIGHT = 320;
  86.  
  87. // Image Formats
  88. $imgFormats = array('png', 'jpg', 'jpeg', 'gif', 'bmp', 'psd');
  89. $acceptedFormats = array(
  90. 'image/x-ms-bmp'=>'bmp',
  91. 'image/bmp' =>'bmp',
  92. 'image/gif' =>'gif',
  93. 'image/pjpeg' =>'jpg',
  94. 'image/jpg' =>'jpg',
  95. 'image/jpeg' =>'jpg',
  96. 'image/tiff' =>'tif',
  97. 'image/x-icon' =>'ico',
  98. 'image/x-png' =>'png',
  99. 'image/png' =>'png',
  100. 'image/psd' =>'psd',
  101. 'application/octet-stream' =>'psd'
  102. );
  103.  
  104. //other global var
  105. $Err = '';
  106. $Suc = '';
  107.  
  108. ///////////////////////////////////////////////////////////////////////////////
  109. // include files
  110.  
  111. // check for settings file
  112. if(!file_exists('inc/set.php') && !file_exists('install.php')){
  113. die("Can't find setings!");
  114. }
  115. // load settings
  116. @include('inc/set.php');
  117.  
  118. // load array class
  119. require_once('lib/arraydb.class.php');
  120.  
  121. // language pack
  122. if(!is_image_load()){
  123. require_once('./languages/'.setLanguage().'.lang.php');
  124. }
  125.  
  126. // Make sure the install.php file is deleted for normal usage
  127. if (file_exists('install.php')){
  128. include_once('./install.php');
  129. exit();
  130. }
  131.  
  132. // theme settings
  133. if (checkThemeSettings($settings['SET_THEME']) && !is_image_load()){
  134. @include('./themes/'.$settings['SET_THEME'].'/settings.php');
  135. }else{
  136. // reload settings
  137. @include('./inc/set.php');
  138. }
  139.  
  140. // AdSense Codes
  141. if($settings['SET_GOOGLE_ADS'] && !is_image_load()){
  142. include_once('./AdSense.php');
  143. }
  144.  
  145.  
  146. // Page errors
  147. if(!is_image_load()){
  148. $errorCode = array(
  149. '500' => array('HTTP/1.1 500 Internal Server Error', $LANGUAGE_PACK["error_500"]),
  150. '404' => array('HTTP/1.1 404 Not Found', $LANGUAGE_PACK["error_404"]),
  151. '403' => array('HTTP/1.1 403 Forbidden', $LANGUAGE_PACK["error_403"]),
  152. '401' => array('HTTP/1.1 401 Unauthorized', $LANGUAGE_PACK["error_401"]),
  153. '400' => array('HTTP/1.1 400 Bad Request', $LANGUAGE_PACK["error_400"])
  154. );
  155. }
  156.  
  157. /////////////////////////////////////////////////////////////////////////////////////////////
  158. //auto run
  159.  
  160. //run auto delete
  161. if(!is_image_load()){
  162. autoDeleted();
  163. }
  164.  
  165. // Image report
  166. if(isset($_GET['report']) && $settings['SET_ALLOW_REPORT']){
  167. report_img(input($_GET['report']));
  168. }
  169.  
  170. ////////////////////////////////////////////////////////////////////////////////////
  171. // functions
  172. ////////////////////////////////////////////////////////////////////////////////////
  173.  
  174. function is_image_load(){
  175. if (isset($_GET['di']) || isset($_GET['dm']) || isset($_GET['dt']))
  176. return true;
  177. return false;
  178. }
  179.  
  180. function checkThemeSettings($theme){
  181.  
  182. // settings that can't be in the theme settings file
  183. $notSet = array(
  184. 'SET_PASSWORD','SET_USERNAME','SET_CONTACT','SET_SITEURL','SET_TITLE','SET_SLOGAN',
  185. 'SET_MAXSIZE','SET_COPYRIGHT','SET_THEME','SET_SALTING','SET_MOD_REWRITE','SET_MAX_BANDWIDTH',
  186. 'SET_VERSION','SET_GOOGLE_ANALYTICS','SET_BANDWIDTH_RESET','SET_MAX_UPLOAD','SET_GOOGLE_ADS',
  187. 'SET_AUTO_DELETED','SET_AUTO_DELETED_TIME','SET_AUTO_DELETED_JUMP','SET_EMAIL_REPORT',
  188. 'SET_ALLOW_REPORT','SET_REMOVE_REPORT','SET_SHORT_URL_ON','SET_PRIVATE_IMG_ON','SET_DIS_UPLOAD',
  189. 'SET_LANGUAGE','SET_SHORT_URL_API','SET_SHORT_URL_API_URL','SET_SHORT_URL_PASS','SET_SHORT_URL_USER',
  190. 'SET_WATERMARK','SET_WATERMARK_TEXT','SET_WATERMARK_PLACED','SET_WATERMARK_IMAGE','SET_NODUPLICATE',
  191. 'SET_GOOGLE_CHANNAL','SET_DB','SET_API_ON','SET_ADDTHIS'
  192. );
  193.  
  194. // check for file
  195. if (file_exists('themes/'.$theme.'/settings.php')){
  196. include('themes/'.$theme.'/settings.php');
  197. if(!isset($settings) || n_array_keys_exists($settings,$notSet)){
  198. return true;
  199. }
  200. }
  201. return false;
  202. }
  203. //not in array
  204. function n_array_keys_exists($array,$keys) {
  205. foreach($keys as $k) {
  206. if(isset($array[$k])) {
  207. return false;
  208. }
  209. }
  210. return true;
  211. }
  212.  
  213. function watermarkImage ($SourceFile) {
  214. global $settings,$DIR_TEMP;
  215.  
  216. $font = 'lib/font/arial.ttf';// the location on the server that the font can be found
  217. $font_size = 40;// size of the font
  218.  
  219. @include_once('lib/watermark.class.php');
  220. $img = new watermark($SourceFile, (empty($settings['SET_WATERMARK_IMAGE'])?null:$settings['SET_WATERMARK_IMAGE']));
  221. $img->cacheDir = $DIR_TEMP;
  222. //$img->saveQuality = 9;
  223. if(empty($settings['SET_WATERMARK_IMAGE'])){
  224. $img->padding = 10;
  225. $img->textWatermark($settings['SET_WATERMARK_TEXT'],$font_size,$font );
  226. $img->opacityVal = 30;
  227. $img->watermarkSizing(0.75);
  228. }
  229. $img->watermarkPosition($settings['SET_WATERMARK_PLACED']);
  230. $img->makeImage();
  231. return;
  232. }
  233.  
  234. function listLanguages(){
  235. global $settings;
  236. $dir_list = opendir("languages/");
  237. $lang ='';
  238. while(false != ($file = readdir($dir_list))){
  239. if(($file != ".") && ($file != "..")){
  240. $lang_name = explode(".", $file);
  241. if (count($lang_name) > 2 && $lang_name[1].'.'.$lang_name[2] == 'lang.php'){
  242. if($settings['SET_LANGUAGE']!=$lang_name[0])
  243. $lang .= '<a href="'.$settings['SET_SITEURL'].'/index.php?lang='.$lang_name[0].'" title="'.$lang_name[0].'" rel="nofollow"><img src="'.$settings['SET_SITEURL'].'/languages/'.$lang_name[0].'.png" alt="'.$lang_name[0].'" width="23" height="15" /></a> ';
  244. }
  245. }
  246. }
  247. return $lang;
  248. }
  249.  
  250. //set site LANGUAGE
  251. function setLanguage(){
  252. global $settings;
  253.  
  254. // see if cookie has been set before
  255. if(isset($_COOKIE['lang']) && file_exists('languages/'.$_COOKIE['lang'].'.lang.php'))
  256. $settings['SET_LANGUAGE'] = $_COOKIE['lang'];
  257. //set cookie
  258. if(isset($_GET['lang'])){
  259. $getLang = input(removeSymbols(end(explode('/',$_GET['lang']))));
  260. if (file_exists('languages/'.$getLang.'.lang.php')){
  261. setcookie('lang', $getLang, null);
  262. $settings['SET_LANGUAGE'] = $getLang;
  263. }
  264. }
  265.  
  266. if(!isset($settings['SET_LANGUAGE']))
  267. $settings['SET_LANGUAGE'] = 'portugueseBR';
  268.  
  269. if(file_exists('languages/'.$settings['SET_LANGUAGE'].'.lang.php')){
  270. return $settings['SET_LANGUAGE'];
  271. }
  272.  
  273. }
  274.  
  275. function ImageWidget($numImg=null, $return = null ){
  276. global $LANGUAGE_PACK,$settings;
  277. if($imageList = imageList('rand',$numImg)){
  278.  
  279. $rand_widget = '<div id="randWidget" class="boxpanel">
  280. <h2 class="boxtitle">'.$LANGUAGE_PACK["home_image_widgit"].'</h2>
  281. <ul class="gallery">';
  282.  
  283. foreach($imageList as $image){
  284. // get image address
  285. $thumb_url = imageAddress(3,$image,"dt");
  286. // get thumb page address
  287. $thumb_mid_link = imageAddress(2,$image,"pm");
  288. //see if there is a alt(title) if not use the image name
  289. $alt_text = ($image['alt'] !="" ? $image['alt']:$image['name']);
  290. //image list for page
  291. $rand_widget .= '
  292. <li><a href="'.$thumb_mid_link.'" title="'.$alt_text.'" class="thumb" >
  293. <img src="'.$thumb_url.'" alt="'.$alt_text.'" />
  294. </a><h2><a href="'.$thumb_mid_link.'" title="'.$alt_text.'">'.$alt_text.'</a></h2>
  295. </li>';
  296.  
  297. }// endfor
  298. $rand_widget .= '</ul><div class="clear"></div></div>';
  299. if(!is_null($return)){
  300. return $rand_widget;
  301. }
  302. echo $rand_widget;
  303. }
  304. }
  305.  
  306. function savefile($menu_array=array(),$fileaddress){
  307. if($fp = @fopen($fileaddress, 'w+')){
  308. fwrite($fp, serialize($menu_array));
  309. fclose($fp);
  310. return true;
  311. }else
  312. return false;
  313. }
  314.  
  315. function loadfile($fileaddress){
  316. if (file_exists($fileaddress)){
  317. $fp = fopen($fileaddress, 'r') or die("I could not read ".$fileaddress);
  318. $filearray = unserialize(fread($fp, filesize($fileaddress)));
  319. fclose($fp);
  320. }else{
  321. $filearray = array();
  322. }
  323. return $filearray;
  324. }
  325.  
  326. function report_img($id){
  327. global $settings,$Err,$Suc,$LANGUAGE_PACK;
  328. $id = input($id);
  329. if(db_addReport($id)){
  330. $Suc['image_report'] = $LANGUAGE_PACK["site_gallery_report_suc"];
  331. if ($settings['SET_EMAIL_REPORT'] && $settings['SET_CONTACT'] !='') {
  332. $subject = "Image Reported on ".$settings['SET_TITLE'];
  333. $message = "reported image id: ".$id." \r\n";
  334. $message .= "reported on : ".$settings['SET_TITLE']." \r\n";
  335. $message .= "Admin Panel : ".$settings['SET_SITEURL']."/admin.php \r\n";
  336. $headers = "From:".$settings['SET_CONTACT']." <".$settings['SET_CONTACT'].">";
  337. mail($settings['SET_CONTACT'],$subject,$message,$headers);
  338. }
  339. return true;
  340. }
  341. $Err['cant_find_image'] = $LANGUAGE_PACK["site_gallery_report_err_find"];
  342. }
  343.  
  344. function hotlink($ref=''){
  345. global $settings;
  346. $referrer = $ref !='' ? $ref:getenv( "HTTP_REFERER" );
  347. $ref_address = explode('/',str_replace('www.', '', str_replace('http://', '',$referrer)));
  348. $home_address = explode('/',str_replace('www.', '', str_replace('http://', '',$settings['SET_SITEURL'])));
  349. if($ref_address[0] == $home_address[0])
  350. return false;
  351. return true;
  352. }
  353.  
  354. function not_max_bandwidth($image,$imgType){
  355. global $settings;
  356. if(!$settings['SET_MAX_BANDWIDTH'] == 0){
  357. if ($settings['SET_BANDWIDTH_RESET'] == 'm'){
  358. $resetdate = strtotime('01 '.date('M Y'));
  359. }else{
  360. $resetdate = strtotime("last Monday");
  361. }
  362. if (($settings['SET_MAX_BANDWIDTH']*1048576) < maxedBandwidth($image['id'],$resetdate)){
  363. header('Content-type: image/png');
  364. readfile('img/bandwidth.png');
  365. exit();
  366. }
  367. }
  368. return true;
  369. }
  370.  
  371. function countSave($image,$imgType){
  372. switch($imgType){
  373. case 1:
  374. $image_typ = 'size';
  375. break;
  376. case 2:
  377. $image_typ = 'thumbsize';
  378. break;
  379. case 3:
  380. $image_typ = 'sthumbsize';
  381. break;
  382. case 4:
  383. default:
  384. $image_typ = 'thumbsize';//gallery
  385. break;
  386. }
  387.  
  388. $bandwidth = $image[$image_typ];
  389.  
  390. $newdb = array( 'id' => $image['id'],
  391. 'date' => time(),
  392. 'image' => ($imgType == 1 ? 1:0),
  393. 'thumb_mid' => ($imgType == 2 ? 1:0),
  394. 'thumb' => ($imgType == 3 ? 1:0),
  395. 'gallery' => ($imgType == 4 ? 1:0),
  396. 'bandwidth' => ($imgType == 4 ? 0:$bandwidth),
  397. );
  398.  
  399. return db_addCounter($newdb);
  400.  
  401. }
  402.  
  403. function shorturl_url( $url, $api=null){
  404. global $settings;
  405.  
  406. $shorturl = '';
  407. if($api==null){
  408. if($settings['SET_SHORT_URL_API'] == 'b54'){
  409. $api = 'yourls';
  410. $settings['SET_SHORT_URL_API_URL'] = 'http://www.b54.in/api/';
  411. }else
  412. $api = $settings['SET_SHORT_URL_API'];
  413. }
  414.  
  415. switch( $api ) {
  416.  
  417. case 'yourls':
  418. $api_url = sprintf( $settings['SET_SHORT_URL_API_URL'] . '?username=%s&password=%s&url=%s&format=text&action=shorturl&source=plugin',$settings['SET_SHORT_URL_USER'], $settings['SET_SHORT_URL_PASS'], urlencode($url) );
  419. $shorturl = shorturl_url_simple( $api_url );
  420. break;
  421.  
  422. case 'bitly':
  423. $api_url = sprintf( 'http://api.bit.ly/v3/shorten?longUrl=%s&login=%s&apiKey=%s&format=xml', urlencode($url), $settings['SET_SHORT_URL_USER'], $settings['SET_SHORT_URL_PASS'] );
  424. $shorturl = shorturl_url_xml( $api_url,'!<url>[^<]+</url>' );
  425. break;
  426.  
  427. case 'tinyurl':
  428. $api_url = sprintf( 'http://tinyurl.com/api-create.php?url=%s', urlencode($url) );
  429. $shorturl = shorturl_url_simple( $api_url );
  430. break;
  431.  
  432. case 'isgd':
  433. $api_url = sprintf( 'http://is.gd/api.php?longurl=%s', urlencode($url) );
  434. $shorturl = shorturl_url_simple( $api_url );
  435. break;
  436. case 'googl':
  437. include './lib/goo.class.php';
  438. $googer = new GoogleURLAPI($settings['SET_SHORT_URL_PASS']);
  439. $shorturl = $googer->shorten($url);
  440. break;
  441. default:
  442. $shorturl='';
  443. }
  444. return $shorturl;
  445. }
  446. function shorturl_url_xml($shorter_url,$preg_match){
  447. $ch = @curl_init();
  448. curl_setopt($ch, CURLOPT_URL, $shorter_url);
  449. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  450. $ShortURL = curl_exec($ch);
  451. curl_close($ch);
  452. preg_match($preg_match, $ShortURL, $elements);
  453. print_r($elements);
  454. return $elements[1];
  455. }
  456. function shorturl_url_simple($shorter_url){
  457. return @file_get_contents($shorter_url);
  458. }
  459.  
  460. function error_note($myproblem,$ret = null) {
  461. global $LANGUAGE_PACK;
  462. $err = '';
  463. if(!empty($myproblem) && is_array($myproblem)){
  464. foreach($myproblem as $v){
  465. $err .='<div id="err" class="notification error"><a class="close" href="#" alt="close" title="Close this notification"> </a> '.$v.'</div>';
  466. }
  467. }elseif(!empty($myproblem) && !is_array($myproblem)){
  468. $err ='<div id="err" class="notification error"><a class="close" href="#" alt="close" title="Close this notification"> </a> '.$myproblem.'</div>';
  469. }
  470. if(is_null($ret))echo $err;
  471. else return $err;
  472. }
  473.  
  474. function success_note($mysuccess,$ret = null) {
  475. global $LANGUAGE_PACK;
  476. $suc = '';
  477. if(!empty($mysuccess) && is_array($mysuccess)){
  478. foreach($mysuccess as $v){
  479. $suc .= '<div id="suc" class="notification success"><a class="close" href="#" alt="close" title="Close this notification"> </a> '.$v.'</div>';
  480. }
  481. }elseif(!empty($mysuccess) && !is_array($mysuccess)){
  482. $suc = '<div id="err" class="notification success"><a class="close" href="#" alt="close" title="Close this notification"> </a> '.$mysuccess.'</div>';
  483. }
  484. if(is_null($ret))echo $suc;
  485. else return $suc;
  486. }
  487.  
  488. function input($in){
  489. $in = trim($in);
  490. if (strlen($in) == 0)
  491. return;
  492. return htmlspecialchars(stripslashes($in));
  493. }
  494.  
  495. function removeSymbols($string) {
  496. $symbols = array('/','\\','\'','"',',','.','<','>','?',';',':','[',']','{','}','|','=','+','-','_',')','(','*','&','^','%','$','#','@','!','~','`');
  497. for ($i = 0; $i < count($symbols); $i++) {
  498. $string = str_replace($symbols[$i],' ',$string);
  499. }
  500. return trim($string);
  501. }
  502.  
  503. function bookmarking($document_url,$document_title){
  504. global $settings;
  505. $ypid = (isset($settings['SET_ADDTHIS']) && !empty($settings['SET_ADDTHIS'])?'#pubid='.$settings['SET_ADDTHIS']:'');
  506. $text = '<div class="addthis">
  507. <!-- AddThis Button BEGIN -->
  508. <div class="addthis_toolbox addthis_default_style " addthis:url="'.$document_url.'" addthis:title="'.$document_title.'">
  509. <a class="addthis_button_preferred_1"></a>
  510. <a class="addthis_button_preferred_2"></a>
  511. <a class="addthis_button_email"></a>
  512. <a class="addthis_button_preferred_4"></a>
  513. <a class="addthis_button_preferred_5"></a>
  514. <a class="addthis_button_preferred_6"></a>
  515. <a class="addthis_button_preferred_7"></a>
  516. <a class="addthis_button_preferred_8"></a>
  517. <a class="addthis_button_compact"></a>
  518. <a class="addthis_counter addthis_bubble_style"></a>
  519. </div>
  520. <script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js'.$ypid.'"></script>
  521. <!-- AddThis Button END -->
  522. </div>';
  523. return $text;
  524. }
  525.  
  526. function imageLinkCode($type,$imageaddress,$linkaddress=null,$alt=null){
  527. switch($type){
  528. case 'bbcode':
  529. return (!is_null($linkaddress)?'[URL='.$linkaddress.']':'').'[IMG]'.$imageaddress.'[/IMG]'.(!is_null($linkaddress)?'[/URL]':'');
  530. break;
  531. case 'html':
  532. return '&lt;a href=&quot;'.$linkaddress.'&quot; title=&quot;'.$alt.'&quot; &gt;&lt;img src=&quot;'.$imageaddress.'&quot; alt=&quot;'.$alt.'&quot; /&gt;&lt/a&gt;';
  533. break;
  534. }
  535. }
  536.  
  537. function imageAddress($imgType,$image,$linktype=null){
  538. global $DIR_THUMB,$DIR_THUMB_MID,$DIR_IMAGE,$settings;
  539.  
  540. $ext = 'html';
  541. $thumb_ext = isset($image['ext'])?strtolower($image['ext']):'';
  542. switch($imgType){
  543. case 1:
  544. $ext = $thumb_ext;
  545. if ($ext!='html')$fileaddress = $DIR_IMAGE.$image['id'].'.'.$ext;
  546. if (!isset($fileaddress) || !file_exists($fileaddress)) return false;
  547. break;
  548. case 2:
  549. $fileaddress = $DIR_THUMB_MID.$image['id'].'.';
  550. if($linktype=='dm')$ext = $thumb_ext;
  551. if(!file_exists($fileaddress.$thumb_ext)) $notfound =1;
  552. else $fileaddress .= $thumb_ext;
  553. break;
  554. case 3:
  555. $fileaddress = $DIR_THUMB.$image['id'].'.';
  556. if($linktype=='dt')$ext = $thumb_ext;
  557. if(!file_exists($fileaddress.$thumb_ext)) $notfound =1;
  558. else $fileaddress .= $thumb_ext;
  559. break;
  560. case 4:
  561. $ext = $thumb_ext;
  562. $fileaddress = $DIR_IMAGE.$image['id'].'.'.$ext;
  563. if (!isset($fileaddress) || !file_exists($fileaddress)) return false;
  564. break;
  565. }
  566.  
  567. // look for the right file ext
  568. if(isset($notfound)){
  569. foreach (array('png','jpg','jpeg','gif') as $fileExt){
  570. if ($thumb_ext != $fileExt && file_exists($fileaddress.$fileExt)){
  571. $fileaddress .= $fileExt;
  572. if($linktype=='dt' || $linktype=='dm') $ext = $fileExt;
  573. break;
  574. }
  575. }
  576. }
  577.  
  578. if (isset($fileaddress)){
  579. if (!is_null($linktype)){
  580. if($settings['SET_MOD_REWRITE']){
  581. return $settings['SET_SITEURL'].'/'.$linktype.'-'.$image['id'].'.'.$ext;
  582. }else{
  583. return $settings['SET_SITEURL'].'/?'.$linktype.'='.$image['id'];
  584. }
  585. }
  586. elseif (is_null($linktype)){
  587. return $fileaddress;
  588. }
  589. }
  590. return false;
  591. }
  592.  
  593. function loadImage(){
  594. global $settings;
  595.  
  596. if (isset($_GET['di'])){
  597. $id = input($_GET['di']);
  598. $type = 1;
  599. }elseif (isset($_GET['dm'])){
  600. $id = input($_GET['dm']);
  601. $type = 2;
  602. }elseif (isset($_GET['dt'])){
  603. $id = input($_GET['dt']);
  604. $type = 3;
  605. }elseif (isset($_GET['dl'])){
  606. $id = input($_GET['dl']);
  607. $type = 4;
  608. }else
  609. return;
  610.  
  611. if(preg_replace("/[^0-9A-Z]/","",$id) != $id){
  612. header('Content-type: image/png');
  613. readfile('img/notfound.png');
  614. exit();
  615. }
  616.  
  617. if($image=getImage($id)){
  618. $image_time = $image['added'];
  619. if(array_key_exists("HTTP_IF_MODIFIED_SINCE",$_SERVER)){
  620. $if_modified_since=strtotime(preg_replace('/;.*$/','',$_SERVER["HTTP_IF_MODIFIED_SINCE"]));
  621. if($if_modified_since >= $image_time){
  622. header("HTTP/1.0 304 Not Modified");
  623. exit();
  624. }
  625. }
  626.  
  627. header('Last-Modified: '.gmdate('D, d M Y H:i:s', $image_time).' GMT', true, 200);
  628. header('Expires: '.gmdate('D, d M Y H:i:s', $image_time + 86400*365).' GMT', true, 200);
  629. header("Pragma: public");
  630. header("Cache-Control: maxage=".(86400*14));
  631.  
  632. $img_address = imageAddress($type,$image);
  633.  
  634. $pathinfo = pathinfo($img_address);
  635. $img_ext = strtolower($pathinfo['extension']);
  636. if($img_ext=='jpg') $img_ext = 'jpeg';
  637.  
  638. if(!hotlink()){
  639. header('Content-type: image/'.$img_ext);
  640. // donwload image header
  641. if($type == 4){
  642. header('Content-Length: '.$image['size']);
  643. header('Content-Disposition: attachment;filename="'.$image['name'].'"');
  644. }
  645. readfile($img_address);
  646. $type = 4;
  647. }else{
  648. not_max_bandwidth($image,$type);
  649. if($settings['SET_WATERMARK']){
  650. watermarkImage($img_address);
  651. }else{
  652. header('Content-type: image/'.$img_ext);
  653. readfile($img_address);
  654. }
  655. }
  656. }else{
  657. header('Content-type: image/png');
  658. readfile('img/notfound.png');
  659. }
  660.  
  661. if(4 != $type){
  662. flushNow(1);
  663. countSave($image,$type);
  664. }
  665.  
  666. exit();
  667. }
  668.  
  669. function order_by(&$db,$field, $order = 123) {
  670. if ($order == 'ASC' || $order == 123)$order = '$a,$b';
  671. if ($order == 'DESC' || $order == 321)$order = '$b,$a';
  672. $code = "return strnatcmp(\$a['$field'], \$b['$field']);";
  673. @usort($db, create_function($order, $code));
  674. }
  675.  
  676. // user image romove function
  677. function removeImage($imageDeleteCode=null){
  678. global $LANGUAGE_PACK,$settings,$Suc,$Err,$DIR_DATA,$DIR_BANDWIDTH;
  679.  
  680. if (is_null($imageDeleteCode) && isset($_GET['d'])){
  681. $imageDeleteCode = $_GET['d'];
  682. }elseif (is_null($imageDeleteCode)){
  683. return;
  684. }
  685.  
  686. if (preg_replace("/[^0-9A-Za-z]/","",$imageDeleteCode) != $imageDeleteCode || empty($imageDeleteCode)){
  687. $Err['delete_image'] = $LANGUAGE_PACK["site_index_delete_image_err_not_found"];
  688. return false;
  689. }
  690.  
  691. if (!$image = getImage($imageDeleteCode,'deleteid')){
  692. $Err['delete_image'] = $LANGUAGE_PACK["site_index_delete_image_err_not_found"];
  693. $_GET['err'] = '404';// not found (404)page error
  694. return false;
  695. }
  696.  
  697. // Remove Image
  698. if(@unlink(imageAddress(1,$image))){
  699. $Suc['delete_image'] = $LANGUAGE_PACK["site_index_delete_image_suc"];
  700. }
  701. // Remove small thumb
  702. @unlink(imageAddress(3,$image));
  703. // Remove thumb
  704. @unlink(imageAddress(2,$image));
  705.  
  706. // Remove link from array
  707. if (!removeImageDb($image['id'])){
  708. $Err['delete_image'] = $LANGUAGE_PACK["site_index_delete_image_err_db"];
  709. return false;
  710. }
  711.  
  712. // Remove bw db
  713. @unlink($DIR_BANDWIDTH.$image['id'].'_imgbw.db');
  714.  
  715. return true;
  716.  
  717. }
  718.  
  719. function autoDeleted(){
  720. global $settings,$DIR_DATA,$Suc,$Err;
  721.  
  722. if(!$settings['SET_AUTO_DELETED'])return;
  723. if(file_exists($DIR_DATA.'ad'.date($settings['SET_AUTO_DELETED_JUMP'])))return;
  724.  
  725. $db_img = imageList(0,'all');
  726. foreach ($db_img as $k => $image){
  727.  
  728. // see if it been viewed
  729. if ($db_count = db_imageCounterList($image['id'])){
  730. $lset_viewed = end($db_count);
  731. if( round(((time() - $lset_viewed['date']) / 86400),2) >= $settings['SET_AUTO_DELETED_TIME']){
  732. $delete_id[$image['id']] = array('deleteid' => $image['deleteid'],'d'=>round(((time() - $lset_viewed['added']) / 86400),2));
  733. }
  734. }
  735.  
  736. // if not viewed see what image was uploaded
  737. elseif( round(((time() - $image['added']) / 86400),2) >= $settings['SET_AUTO_DELETED_TIME']){
  738. $delete_id[$image['id']] = array('deleteid' => $image['deleteid'],'d'=>round(((time() - $image['added']) / 86400),2));
  739. }
  740. }
  741.  
  742. //remove images
  743. if(!empty($delete_id)){
  744. foreach ($delete_id as $k => $image){
  745. removeImage($image['deleteid']);
  746. }
  747. }
  748.  
  749. // remove image removed meg
  750. $Suc = array();
  751.  
  752. if(savefile(array(),$DIR_DATA.'ad'.date($settings['SET_AUTO_DELETED_JUMP']))){
  753. if(file_exists($DIR_DATA.'ad'.(date($settings['SET_AUTO_DELETED_JUMP'])-1))){
  754. unlink ($DIR_DATA.'ad'.(date($settings['SET_AUTO_DELETED_JUMP'])-1));
  755. }
  756. }
  757. }
  758.  
  759. function pageCount(){
  760. $result = false;
  761. //bots
  762. $useragent = isset($_SERVER['HTTP_USER_AGENT'])?$_SERVER['HTTP_USER_AGENT']:'unknown';
  763. $searchengines = array("bot", "crawler", "spider", "google", "yahoo", "msn", "ask", "ia_archiver");
  764. foreach ($searchengines as $searchengine) {
  765. $match = "/$searchengine/i";
  766. if (preg_match($match, $useragent)){
  767. $result = true;
  768. }
  769. }
  770.  
  771. if (!$result) {
  772. $ip = $_SERVER['REMOTE_ADDR'];
  773. $page = basename($_SERVER['SCRIPT_NAME']);//curPageURL(0);
  774. $newdb = array(
  775. 'time' => time(),
  776. 'page' => $page,
  777. 'ip' => $ip,
  778. );
  779.  
  780. return db_addPageCounter($newdb);
  781. }
  782. return false;
  783. }
  784.  
  785. function curPageURL($fix = TRUE) {
  786. $url = $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
  787. $url = (substr($url, 0,4) == "www." ? substr($url, 4):$url);
  788. $url = (substr($url, -1) == "/" ? $url.end(explode('/',$_SERVER['SCRIPT_NAME'])):$url);
  789. $url = (!$fix ? $url : (strpos($url, '?' )> 0 ? substr($url, 0, strpos($url, '?')):$url));
  790. return $url;
  791. }
  792.  
  793. function format_size($size="",$file="") {
  794. if (empty($size) && !empty($file)) $size = @filesize($file);
  795.  
  796. if (strlen($size) <= 9 && strlen($size) >= 7){
  797. $img_size = substr(number_format($size / 1048576,2), -2) == '00'
  798. ? number_format($size / 1048576,0):number_format($size / 1048576,2);
  799. $img_size .= " MB";
  800. }elseif (strlen($size) >= 10){
  801. $img_size = substr(number_format($size / 1073741824,2), -2) == '00'
  802. ? number_format($size / 1073741824,0):number_format($size / 1073741824,2);
  803. $img_size .= " GB";
  804. }else $img_size = number_format($size / 1024,0)." kb";
  805.  
  806. return $img_size;
  807. }
  808.  
  809. function checklogin() {
  810. global $settings;
  811. if(isset($_SESSION['loggedin'])){
  812. if ($_SESSION['set_name'] == md5($settings['SET_USERNAME'].$settings['SET_SALTING'].$settings['SET_PASSWORD'])){
  813. return true;
  814. }else{
  815. session_unset();
  816. session_destroy();
  817. }
  818. }
  819. return false;
  820. }
  821.  
  822. function pagination($pageOn,$itemsOnPage,$itemCount,$pageAddress){
  823. global $LANGUAGE_PACK;
  824.  
  825. $pageOn++;// add 1 to fix page number
  826.  
  827. // the number of links to show
  828. $numberOfPageLinks = 11;
  829.  
  830. // work out the No. of Pages
  831. $noOfPages = ceil($itemCount/$itemsOnPage);
  832.  
  833. // On page * of **
  834. $pagination = '<div class="pagination"><span class="pagecount">'.sprintf($LANGUAGE_PACK["pagination_page_of"], $pageOn, $noOfPages).'</span>' ;
  835.  
  836. //first and prev buttons
  837. $pagination.= ($pageOn>1) ? '<a href="'.sprintf($pageAddress, 1).'" title="'.$LANGUAGE_PACK["pagination_page_first_tip"].'">'.$LANGUAGE_PACK["pagination_page_first"].'</a><a href="'.sprintf($pageAddress, ($pageOn-1)).'" title="'.$LANGUAGE_PACK["pagination_previous_page_tip"].'">-</a>':'';
  838.  
  839.  
  840. $numberToList = $noOfPages > ($numberOfPageLinks-1) ? ($numberOfPageLinks-1) :($noOfPages-1);
  841. $listStart = (($pageOn-(($numberOfPageLinks-1)/2)) < 1) ? 1 : (($pageOn+(($numberOfPageLinks-1)/2))>$noOfPages ? ($noOfPages-$numberToList):($pageOn-(($numberOfPageLinks-1)/2)));
  842.  
  843. for ($i = $listStart; $i <= ($listStart+$numberToList); $i++) {
  844. $pagination .=($i==$pageOn ? '<span class="current">'.$i.'</span>':'<a href="'.sprintf($pageAddress, $i).'" title="'.sprintf($LANGUAGE_PACK["pagination_page_tip"],$i).'">'.$i.'</a>');
  845. }
  846.  
  847. // next and last pages
  848. $pagination .= ($pageOn) < $noOfPages ? '<a href="'.sprintf($pageAddress, ($pageOn+1)).'" title="'.$LANGUAGE_PACK["pagination_next_page_tip"].'">+</a><a href="'.sprintf($pageAddress, $noOfPages).'" title="'.$LANGUAGE_PACK["pagination_page_last_tip"].'">'.$LANGUAGE_PACK["pagination_page_last"].'</a>':'';
  849. $pagination .='</div>';
  850.  
  851. return $pagination;
  852. }
  853.  
  854. function saveSettings($address,$settings){
  855.  
  856. $setFile ='<?
  857.  
  858. // stop the nav to set.php
  859. if (!defined(\'CFIHP\')){
  860. header("Location: ../index.php");
  861. exit();
  862. }
  863.  
  864.  
  865. $settings[\'SET_PASSWORD\'] = \''.$settings['SET_PASSWORD'].'\';
  866. $settings[\'SET_USERNAME\'] = \''.$settings['SET_USERNAME'].'\';
  867. $settings[\'SET_CONTACT\'] = \''.$settings['SET_CONTACT'].'\';
  868. $settings[\'SET_SITEURL\'] = \''.$settings['SET_SITEURL'].'\';
  869. $settings[\'SET_TITLE\'] = \''.$settings['SET_TITLE'].'\';
  870. $settings[\'SET_SLOGAN\'] = \''.$settings['SET_SLOGAN'].'\';
  871. $settings[\'SET_MAXSIZE\'] = '.$settings['SET_MAXSIZE'].';
  872. $settings[\'SET_IMG_ON_PAGE\'] = '.$settings['SET_IMG_ON_PAGE'].';
  873. $settings[\'SET_COPYRIGHT\'] = \''.$settings['SET_COPYRIGHT'].'\';
  874. $settings[\'SET_THEME\'] = \''.$settings['SET_THEME'].'\';
  875. $settings[\'SET_SALTING\'] = \''.$settings['SET_SALTING'].'\';
  876. $settings[\'SET_MOD_REWRITE\'] = '.($settings['SET_MOD_REWRITE'] == 1? 1:0).';
  877. $settings[\'SET_MAX_BANDWIDTH\'] = '.$settings['SET_MAX_BANDWIDTH'].';
  878. $settings[\'SET_VERSION\'] = \''.$settings['SET_VERSION'].'\';
  879. $settings[\'SET_GOOGLE_ANALYTICS\'] = \''.$settings['SET_GOOGLE_ANALYTICS'].'\';
  880. $settings[\'SET_BANDWIDTH_RESET\'] = \''.$settings['SET_BANDWIDTH_RESET'].'\';
  881. $settings[\'SET_MAX_UPLOAD\'] = '.$settings['SET_MAX_UPLOAD'].';
  882. $settings[\'SET_HIDE_SEARCH\'] = '.($settings['SET_HIDE_SEARCH'] == 1? 1:0).';
  883. $settings[\'SET_GOOGLE_ADS\'] = \''.$settings['SET_GOOGLE_ADS'].'\';
  884. $settings[\'SET_AUTO_DELETED\'] = '.($settings['SET_AUTO_DELETED'] == 1? 1:0).';
  885. $settings[\'SET_AUTO_DELETED_TIME\'] = '.$settings['SET_AUTO_DELETED_TIME'].';
  886. $settings[\'SET_AUTO_DELETED_JUMP\'] = \''.$settings['SET_AUTO_DELETED_JUMP'].'\';
  887. $settings[\'SET_HIDE_CONTACT\'] = '.($settings['SET_HIDE_CONTACT'] == 1? 1:0).';
  888. $settings[\'SET_HIDE_TOS\'] = '.($settings['SET_HIDE_TOS'] == 1? 1:0).';
  889. $settings[\'SET_HIDE_GALLERY\'] = '.($settings['SET_HIDE_GALLERY'] == 1? 1:0).';
  890. $settings[\'SET_EMAIL_REPORT\'] = '.($settings['SET_EMAIL_REPORT'] == 1? 1:0).';
  891. $settings[\'SET_ALLOW_REPORT\'] = '.($settings['SET_ALLOW_REPORT'] == 1? 1:0).';
  892. $settings[\'SET_SHORT_URL_ON\'] = '.($settings['SET_SHORT_URL_ON'] == 1? 1:0).';
  893. $settings[\'SET_PRIVATE_IMG_ON\'] = '.($settings['SET_PRIVATE_IMG_ON'] == 1? 1:0).';
  894. $settings[\'SET_DIS_UPLOAD\'] = '.($settings['SET_DIS_UPLOAD'] == 1? 1:0).';
  895. $settings[\'SET_LANGUAGE\'] = \''.$settings['SET_LANGUAGE'].'\';
  896. $settings[\'SET_SHORT_URL_API\'] = \''.$settings['SET_SHORT_URL_API'].'\';
  897. $settings[\'SET_SHORT_URL_API_URL\'] = \''.$settings['SET_SHORT_URL_API_URL'].'\';
  898. $settings[\'SET_SHORT_URL_PASS\'] = \''.$settings['SET_SHORT_URL_PASS'].'\';
  899. $settings[\'SET_SHORT_URL_USER\'] = \''.$settings['SET_SHORT_URL_USER'].'\';
  900. $settings[\'SET_WATERMARK\'] = '.($settings['SET_WATERMARK'] == 1? 1:0).';
  901. $settings[\'SET_WATERMARK_TEXT\'] = \''.$settings['SET_WATERMARK_TEXT'].'\';
  902. $settings[\'SET_WATERMARK_PLACED\'] = '.$settings['SET_WATERMARK_PLACED'].';
  903. $settings[\'SET_WATERMARK_IMAGE\'] = \''.$settings['SET_WATERMARK_IMAGE'].'\';
  904. $settings[\'SET_IMAGE_WIDGIT\'] = '.($settings['SET_IMAGE_WIDGIT'] == 1? 1:0).';
  905. $settings[\'SET_NODUPLICATE\'] = '.($settings['SET_NODUPLICATE'] == 1? 1:0).';
  906. $settings[\'SET_RESIZE_IMG_ON\'] = '.($settings['SET_RESIZE_IMG_ON'] == 1? 1:0).';
  907. $settings[\'SET_GOOGLE_CHANNAL\'] = \''.$settings['SET_GOOGLE_CHANNAL'].'\';
  908. $settings[\'SET_HIDE_FAQ\'] = '.($settings['SET_HIDE_FAQ'] == 1? 1:0).';
  909. $settings[\'SET_ADDTHIS\'] = \''.$settings['SET_ADDTHIS'].'\';
  910. ';
  911.  
  912. if($fp = @fopen($address, 'w+')){
  913. fwrite($fp, $setFile);
  914. fclose($fp);
  915. return true;
  916. }else
  917. return false;
  918.  
  919. }
  920.  
  921. function flushNow($now = null){
  922. echo(str_repeat(' ',256));
  923. // check that buffer is actually set before flushing
  924. if (ob_get_length()){
  925. @ob_flush();
  926. @flush();
  927. @ob_end_flush();
  928. }
  929. @ob_start();
  930. if(is_null($now)) usleep(rand(2,4)*100000);
  931. }
  932.  
  933. ////////////////////////////////////////////////////////////////////////////////////
  934. // Start session
  935. session_name();
  936. if (!session_start()) {
  937. $Err['session_error'] = $LANGUAGE_PACK["admin_session_error"];
  938. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement