PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 2
Chesterfield25 Отправлено: 03 Июля, 2019 - 12:27:10 • Тема: Исчезающий список ссылок • Форум: Вопросы новичков

Ответов: 3
Просмотров: 322
Кто сможет помочь буду очень благодарен!
Нужно создать такую страницу на которой будет выводится список ссылок, что бы по одной ссылке могли перейти только один раз и один человек, после чего она станет неактивной! Или же что бы при посещение пользователя нужной мне страницы ему показывалась одна ссылка после перехода по ней она удалялась из базы данных.
Chesterfield25 Отправлено: 25 Февраля, 2018 - 18:00:29 • Тема: исправить код • Форум: Напишите за меня, пожалуйста

Ответов: 0
Просмотров: 39
Скачал скрипт сайта. Начал проверять на дыры. Мне показало что в файле download.php есть проблемы а именно в строке 240, скидываю скрин и код файла

Нажмите для увеличения


Буду благодарен за любую помощь!

Код
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. /*
  4. =====================================================
  5.  DataLife Engine - by SoftNews Media Group
  6. -----------------------------------------------------
  7.  http://dle-news.ru/
  8. -----------------------------------------------------
  9.  Copyright (c) 2004-2017 SoftNews Media Group
  10. =====================================================
  11.  Данный код защищен авторскими правами
  12. =====================================================
  13.  Файл: download.php
  14. -----------------------------------------------------
  15.  Назначение: Скачивание файлов
  16. =====================================================
  17. */
  18. define ( 'DATALIFEENGINE', true );
  19. define ( 'FILE_DIR', '../uploads/files/' );
  20. define ( 'ROOT_DIR', '..' );
  21. define ( 'ENGINE_DIR', ROOT_DIR . '/engine' );
  22.  
  23. @error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
  24. @ini_set ( 'display_errors', true );
  25. @ini_set ( 'html_errors', false );
  26. @ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
  27.  
  28. function reset_url($url) {
  29.         $url = (string)$url;
  30.        
  31.         $value = str_replace ( "http://", "", $url );
  32.         $value = str_replace ( "https://", "", $value );
  33.         $value = str_replace ( "www.", "", $value );
  34.         $value = explode ( "/", $value );
  35.         $value = reset ( $value );
  36.         return $value;
  37. }
  38.  
  39. function clear_url_dir($var) {
  40.         $var = (string)$var;
  41.        
  42.         $var = str_ireplace( ".php", "", $var );
  43.         $var = str_ireplace( ".php", ".ppp", $var );
  44.         $var = trim( strip_tags( $var ) );
  45.         $var = str_replace( "\\", "/", $var );
  46.         $var = preg_replace( "/[^a-z0-9\/\_\-]+/mi", "", $var );
  47.         return $var;
  48.        
  49. }
  50.  
  51. require ENGINE_DIR . '/data/config.php';
  52.  
  53. date_default_timezone_set ( $config['date_adjust'] );
  54.  
  55. if ($config['http_home_url'] == "") {
  56.        
  57.         $config['http_home_url'] = explode ( "engine/download.php", $_SERVER['PHP_SELF'] );
  58.         $config['http_home_url'] = reset ( $config['http_home_url'] );
  59.         $config['http_home_url'] = "http://" . $_SERVER['HTTP_HOST'] . $config['http_home_url'];
  60.  
  61. }
  62.  
  63. require_once ENGINE_DIR . '/classes/mysql.php';
  64. require_once ENGINE_DIR . '/data/dbconfig.php';
  65. require_once ENGINE_DIR . '/modules/functions.php';
  66.  
  67. dle_session();
  68. $_TIME = time();
  69.  
  70. //################# Определение групп пользователей
  71. $user_group = get_vars ( "usergroup" );
  72.  
  73. if ( !$user_group ) {
  74.        
  75.         $user_group = array ();
  76.        
  77.         $db->query ( "SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC" );
  78.        
  79.         while ( $row = $db->get_row () ) {
  80.                
  81.                 $user_group[$row['id']] = array ();
  82.                
  83.                 foreach ( $row as $key => $value ) {
  84.                         $user_group[$row['id']][$key] = $value;
  85.                 }
  86.        
  87.         }
  88.        
  89.         set_vars ( "usergroup", $user_group );
  90.         $db->free ();
  91.  
  92. }
  93.  
  94. require_once ENGINE_DIR . '/modules/sitelogin.php';
  95. require_once ENGINE_DIR . '/classes/download.class.php';
  96.  
  97. if ( !$is_logged ) {
  98.         $member_id['user_group'] = 5;
  99. }
  100.  
  101. $id = intval( $_REQUEST['id'] );
  102. $viewonline = intval( $_REQUEST['viewonline'] );
  103. $perm = true;
  104. $onlineview_ext = array('doc', 'docx','odt','pdf','xls','xlsx');
  105. $full_link = $config['http_home_url'];
  106.  
  107. if ($_REQUEST['area'] == "static") {
  108.        
  109.         $row = $db->super_query ( "SELECT static_id, name, onserver FROM " . PREFIX . "_static_files WHERE id ='{$id}'" );
  110.  
  111.         $row_news = $db->super_query ( "SELECT id, name FROM " . PREFIX . "_static WHERE id ='{$row['static_id']}'" );
  112.        
  113.         if ( $row_news['id'] ) {
  114.                
  115.                 if( $config['allow_alt_url'] ) $full_link = $config['http_home_url'] . $row_news['name'] . ".html";
  116.                 else $full_link = $config['http_home_url'] . "index.php?do=static&page=" . $row_news['name'];
  117.                
  118.         } else {
  119.                
  120.                 $perm = false;
  121.                
  122.         }
  123.        
  124. } else {
  125.        
  126.         $row = $db->super_query ( "SELECT news_id, name, onserver FROM " . PREFIX . "_files WHERE id ='{$id}'" );
  127.  
  128.         if ( $row['news_id'] AND !$viewonline ) {
  129.                
  130.                 $row_news = $db->super_query ( "SELECT id, autor, date, category, alt_name, approve, access FROM " . PREFIX . "_post LEFT JOIN " . PREFIX . "_post_extras ON (" . PREFIX . "_post.id=" . PREFIX . "_post_extras.news_id) WHERE id ='{$row['news_id']}'" );
  131.                
  132.                 if( $row_news['id'] ) {
  133.                        
  134.                         $row_news['date'] = strtotime( $row_news['date'] );
  135.                        
  136.                         if( $config['allow_alt_url'] ) {
  137.                                
  138.                                 if( $config['seo_type'] == 1 OR $config['seo_type'] == 2  ) {
  139.                                        
  140.                                         if( $row['category'] and $config['seo_type'] == 2 ) {
  141.                                                
  142.                                                 $full_link = $config['http_home_url'] . get_url( $row_news['category'] ) . "/" . $row_news['id'] . "-" . $row_news['alt_name'] . ".html";
  143.                                        
  144.                                         } else {
  145.                                                
  146.                                                 $full_link = $config['http_home_url'] . $row_news['id'] . "-" . $row_news['alt_name'] . ".html";
  147.                                        
  148.                                         }
  149.                                
  150.                                 } else {
  151.                                        
  152.                                         $full_link = $config['http_home_url'] . date( 'Y/m/d/', $row_news['date'] ) . $row_news['alt_name'] . ".html";
  153.                                 }
  154.                        
  155.                         } else {
  156.                                
  157.                                 $full_link = $config['http_home_url'] . "index.php?newsid=" . $row_news['id'];
  158.                        
  159.                         }
  160.                        
  161.                         $options = news_permission( $row_news['access'] );
  162.                         if( $options[$member_id['user_group']] AND $options[$member_id['user_group']] != 3 ) $perm = true;
  163.                         if( $options[$member_id['user_group']] == 3 ) $perm = false;
  164.        
  165.                         if ($config['no_date'] AND !$config['news_future'] AND !$user_group[$member_id['user_group']]['allow_all_edit']) {
  166.                
  167.                                 if( $row_news['date'] > $_TIME ) {
  168.                                         $perm = false;         
  169.                                 }
  170.                
  171.                         }
  172.                        
  173.                         $cat_list = explode( ',', $row_news['category'] );
  174.                        
  175.                         if( count($cat_list) ) {
  176.                                
  177.                                 $allow_list = explode( ',', $user_group[$member_id['user_group']]['allow_cats'] );
  178.                                 $not_allow_cats = explode ( ',', $user_group[$member_id['user_group']]['not_allow_cats'] );
  179.                
  180.                                 foreach ( $cat_list as $element ) {
  181.                                                
  182.                                         if( $allow_list[0] != "all" AND !in_array( $element, $allow_list ) ) $perm = false;
  183.                                        
  184.                                         if( $not_allow_cats[0] != "" AND in_array( $element, $not_allow_cats ) ) $perm = false;
  185.                                        
  186.                                 }
  187.                                
  188.                         }
  189.                        
  190.                         if( !$row_news['approve'] AND $member_id['name'] != $row_news['autor'] AND !$user_group[$member_id['user_group']]['allow_all_edit'] ) $perm = false;
  191.                        
  192.                 } else $perm = false;
  193.  
  194.         } elseif ( !$row['news_id'] ) {
  195.                 $perm = false;
  196.         }
  197.  
  198. }
  199.  
  200. if ( !$row['name'] ) {
  201.         die ( "Access denied" );
  202. }
  203.  
  204. if ( !$perm ) {
  205.         die ( "You don't have access to download this file" );
  206. }
  207.  
  208. $url = @parse_url ( $row['onserver'] );
  209.  
  210. $file_path = dirname (clear_url_dir($url['path']));
  211. $file_name = pathinfo($url['path']);
  212. $file_ext  = totranslit($file_name['extension'], true, false);
  213. $file_name = totranslit($file_name['basename'], false);
  214.  
  215. if ($file_path AND $file_path != ".") $file_name = $file_path."/".$file_name;
  216.  
  217. if( stripos ( $file_name, ".php" ) !== false ) {
  218.         die ( "Access denied" );
  219. }
  220.  
  221. if ($viewonline == 1 AND in_array($file_ext, $onlineview_ext) ) {
  222.        
  223.    $config['files_antileech'] = false;
  224.         $user_group[$member_id['user_group']]['files_max_speed'] = 0;
  225.         $user_group[$member_id['user_group']]['allow_files'] = true;
  226.        
  227. }
  228.  
  229. if ( !$user_group[$member_id['user_group']]['allow_files'] ) {
  230.         die ( "Access denied" );
  231. }
  232.  
  233. if ($config['files_antileech']) {
  234.        
  235.         $_SERVER['HTTP_REFERER'] = reset_url ( $_SERVER['HTTP_REFERER'] );
  236.         $_SERVER['HTTP_HOST'] = reset_url ( $_SERVER['HTTP_HOST'] );
  237.  
  238.         if ($_SERVER['HTTP_HOST'] != $_SERVER['HTTP_REFERER']) {
  239.                 @header ( 'Location: ' . $full_link );
  240.                 die ( "Access denied!!!<br /><br />Please visit <a href=\"{$config['http_home_url']}\">{$config['http_home_url']}</a>" );
  241.         }
  242.  
  243. }
  244.  
  245. $file = new download ( FILE_DIR . $file_name, $row['name'], $config['files_force'], intval($user_group[$member_id['user_group']]['files_max_speed']) );
  246.  
  247. if ($_REQUEST['area'] == "static") {
  248.        
  249.         if ($config['files_count'] AND !$file->range) {
  250.                 $db->query ( "UPDATE " . PREFIX . "_static_files SET dcount=dcount+1 WHERE id ='$id'" );
  251.         }
  252.  
  253. } else {
  254.        
  255.         if ($config['files_count'] AND !$file->range) {
  256.                 $db->query ( "UPDATE " . PREFIX . "_files SET dcount=dcount+1 WHERE id ='$id'" );
  257.         }
  258.  
  259. }
  260.  
  261. $db->close();
  262.  
  263. $file->download_file();
  264. ?>
  265.  

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB