Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Написал загруз-центр

 PHP.SU

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


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

> Без описания
Coder1994
Отправлено: 24 Июня, 2011 - 15:32:15
Post Id


Частый гость


Покинул форум
Сообщений всего: 213
Дата рег-ции: Май 2010  
Откуда: Россия, Ростов-на-Дону


Помог: 3 раз(а)




Загруз-центр имеет ориентировку на Java-приложения, интересно узнать ваше мнение по поводу данного кода:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. define('JAVA_DLC', true);
  3. include '../config.php';
  4.  
  5. include_once FNC_DIR . '/true_user.php';
  6.  
  7. include_once FNC_DIR . '/functions.php';
  8.  
  9. include 'inc/set.php';
  10.  
  11. if ($id != 0)
  12.         {
  13.         $info = $db->query("SELECT * FROM `files` WHERE `id`='$id' LIMIT 1")->fetch_assoc();
  14.         $where = 'WHERE `folder`=\'' . $info['s_name'] . '\'';
  15.         $folder = explode('/', $info['folder']);
  16.         foreach($folder as $value)
  17.                 {
  18.                 if ($value == 'files')
  19.                         {
  20.                         $put = "Путь: <a href='index.php'>главная</a> ";
  21.                         $papka = $value;
  22.                         if ($title_set == 3)
  23.                                 {
  24.                                 $title = $info['name'];
  25.                                 }
  26.                           else
  27.                                 {
  28.                                 $title = $set_dc['title'] . ' - ' . $info['name'];
  29.                                 }
  30.                         }
  31.                   else
  32.                         {
  33.                         $papka = $papka . '/' . $value;
  34.                         $cat = $db->query("SELECT `id`, `name` FROM `files` WHERE `s_name`='$papka' LIMIT 1")->fetch_assoc();
  35.                         $put = $put . "&raquo; <a href='index.php?id=$cat[id]'>$cat[name]</a> ";
  36.                         $title = $title . ' - ' . $cat['name'];
  37.                         }
  38.                 }
  39.         }
  40.   else
  41.         {
  42.         if ($set_dc['step_i'] > 0)
  43.                 {
  44.                 $step = intval($set_dc['step_i']);
  45.                 }
  46.           else
  47.                 {
  48.                 $step = 100;
  49.                 }
  50.  
  51.         $where = 'WHERE `folder`=\'files\'';
  52.         }
  53.  
  54. if (isset($_GET['act']) && $_GET['act'] == 'load' && isset($_GET['type']) && ($_GET['type'] == 'jar' || $_GET['type'] == 'jad'))
  55.         {
  56.  
  57.         // echo $info['s_name'];
  58.  
  59.         if ($_GET['type'] == 'jar' && file_exists($info['s_name']))
  60.                 {
  61.                 if (!isset($_SESSION["load_$info[id]"]))
  62.                         {
  63.                         $db->query('UPDATE `files` SET `loads`=`loads`+1, `lasttime`=' . $time . ' WHERE `s_name`="' . $info['folder'] . '" LIMIT 1');
  64.                         $_SESSION["load_$info[id]"] = $info['id'];
  65.                         }
  66.  
  67.                 $name = basename($info['s_name']);
  68.                 if (!preg_match("/" .$_SERVER['SERVER_NAME'] . "/i", $name))
  69.                         {
  70.                         $name = $_SERVER['SERVER_NAME'] . '_' . $name;
  71.                         }
  72.  
  73.                 header('Location: down/java/' . $id . '/' . $name);
  74.                 exit();
  75.                 }
  76.         elseif ($_GET['type'] == 'jad')
  77.                 {
  78.                 $jad = preg_replace('#.jar#', '.jad', $info['s_name']);
  79.                 if (file_exists($jad))
  80.                         {
  81.                         if (!isset($_SESSION["load_$info[id]"]))
  82.                                 {
  83.                                 $db->query('UPDATE `files` SET `loads`=`loads`+1, `lasttime`=' . $time . ' WHERE `s_name`="' . $info['folder'] . '" LIMIT 1');
  84.                                 $_SESSION["load_$info[id]"] = $info['id'];
  85.                                 }
  86.  
  87.                         header('Location: ' . $jad);
  88.                         exit();
  89.                         }
  90.                 }
  91.         }
  92.  
  93. $title = "Загруз-Центр";
  94. include '../inc/head.php';
  95.  
  96. title();
  97. userint();
  98. if ($id == 0)
  99.         {
  100.         echo "<div class='hm'>\n";
  101.         if ($set_dc['news'] == 1)
  102.                 {
  103.                 include_once 'inc/news_main.php';
  104.  
  105.                 }
  106.  
  107.         echo '<div class="count"><a href="news.php">Новости сайта</a>(';
  108.         include ('inc/news_count.php');
  109.  
  110.         echo ')</div>';
  111.         echo "</div>\n";
  112.         /* здесь можно вставить ссылки и рекламу только для главной*/
  113.         }
  114.  
  115. // echo "<div class='hm'>\n";
  116.  
  117. echo '<div class="link"><img src="images/search.gif" alt="&raquo;" width="12" height="12" /> <a href="?id=' . $id . '&ac=search">Поиск игр</a></div>';
  118.  
  119. if ($id == 0)
  120.         {
  121.         echo '<div class="link">&raquo; <a href="top.php">Top скачиваемых</a></div>';
  122.  
  123.         // echo '<div class="link"><img src="images/102.gif" alt="&raquo;" width="12" height="12" /> <a href="vendor.php">По производителям</a></div>';
  124.  
  125.         $new = $db->query('SELECT COUNT(*) FROM `files` WHERE `type`="2" && `upltime`>' . $new_time . ';')->fetch_assoc();
  126.         if ($new['0'] > 0)
  127.                 {
  128.                 $new = "[+ $new[0]]";
  129.                 }
  130.           else
  131.                 {
  132.                 $new = '';
  133.                 }
  134.  
  135.         echo '<div class="link">&raquo; <a href="new.php">Новые Игры  ' . $new . '</a></div>';
  136.         /* здесь можно вставить ссылки и рекламу только для главной*/
  137.         }
  138.  
  139. // echo "</div>\n";
  140.  
  141. if ($ac == 'search')
  142.         {
  143.         if ((isset($_POST['ok']) && $_POST['words'] != null && strlen($_POST['words']) > 2) || $page > 1)
  144.                 {
  145.                 if (isset($_POST['words']) && $_POST['words'] != null)
  146.                         {
  147.                         $s_query = explode(' ', $_POST['words']);
  148.                         $search = '%';
  149.                         foreach($s_query as $query)
  150.                                 {
  151.                                 $search = $search . $query . '%';
  152.                                 }
  153.  
  154.                         $_SESSION['search'] = $search;
  155.                         }
  156.  
  157.                 if (isset($_SESSION['search']))
  158.                         {
  159.                         $search = $_SESSION['search'];
  160.                         }
  161.  
  162.                 if (isset($_POST['onlyname']))
  163.                         {
  164.                         $_SESSION['on'] = 1;
  165.                         }
  166.  
  167.                 if (isset($_SESSION['on']))
  168.                         {
  169.                         $on = $_SESSION['on'];
  170.                         }
  171.  
  172.                 if (isset($_POST['indir']))
  173.                         {
  174.                         $_SESSION['indir'] = 1;
  175.                         }
  176.  
  177.                 if (isset($_SESSION['indir']))
  178.                         {
  179.                         $indir = $_SESSION['indir'];
  180.                         }
  181.  
  182.                 // ЕСЛИ ИЗМЕНЯЛИ КОД ГЛАВНОЙ, ТО СКОПИРУЙТЕ ВСЕ ОТ КОММЕНТАРИЯ "НАЧАЛО" ДО КОММЕНТАРИЯ "КОНЕЦ" И ВСТАВЬТЕ У СЕБЯ В ФАЙЛЕ ЗАМЕНИВ ЭТУ ЖЕ ОБЛАСТЬ. ЕСЛИ НЕ ИЗМЕНЯЛИ ФАЙЛ INDEX.PHP ТО ПРОСТО ЗАМЕНИТЕ ФАЙЛ. Первый блок сразу внизу. Второй блок на 190 строке.
  183.                 // НАЧАЛО
  184.  
  185.                 if (isset($on))
  186.                         {
  187.                         $query_w = "(`name` LIKE " . quote_smart($search) . " OR `about` LIKE " . quote_smart($search) . ")";
  188.                         }
  189.                   else
  190.                         {
  191.                         $query_w = "`name` LIKE " . quote_smart($search) . "";
  192.                         }
  193.  
  194.                 // КОНЕЦ
  195.  
  196.                 if (isset($indir))
  197.                         {
  198.                         $query_d = "&& `s_name` LIKE  '$info[s_name]%'";
  199.                         }
  200.  
  201.                 $where = "WHERE $query_w $query_d";
  202.                 }
  203.           else
  204.                 {
  205.                 echo '<div class="hm">';
  206.                 if ($_POST['words'] != null && strlen($_POST['words']) < 4)
  207.                         {
  208.                         echo '<div class="link" style="color: #FF2A00;">введите слово не короче 3 символов</div>';
  209.                         }
  210.  
  211.                 echo '<form style="font-size: 11px;" action="" method="post">
  212.  
  213. Поиск файлов: (<a href="?id=' . $id . '">отмена</a>)<br />     
  214.  
  215. <input style="background-color: #fc0; font-size: 9px; max-height: 10px;" type="text" value="" name="words" />
  216. <input style="background-color: #fc0;" type="checkbox" value="1" name="onlyname" /> только по имени
  217. <input style="background-color: #fc0;" type="checkbox" value="1" name="indir" /> в текущей папке
  218. <input style="background-color: #2BD52B;" type="submit" value="найти" name="ok" />
  219.  
  220. </form>
  221.  
  222. </div>';
  223.                 }
  224.  
  225.         if ($page == 1 && isset($_POST['ok']))
  226.                 {
  227.                 if (isset($_SESSION['search']))
  228.                         {
  229.                         $search = $_SESSION['search'];
  230.                         }
  231.  
  232.                 // НАЧАЛО
  233.  
  234.                 if (isset($on))
  235.                         {
  236.                         $query_w = "(`name` LIKE " . quote_smart($search) . " OR `about` LIKE " . quote_smart($search) . ")";
  237.                         }
  238.                   else
  239.                         {
  240.                         $query_w = "`name` LIKE " . quote_smart($search) . "";
  241.                         }
  242.  
  243.                 // КОНЕЦ
  244.  
  245.                 if (isset($indir))
  246.                         {
  247.                         $query_d = "&& `s_name` LIKE  '$info[s_name]%'";
  248.                         }
  249.  
  250.                 $where = "WHERE $query_w $query_d";
  251.                 }
  252.         }
  253.  
  254. /* сюда рекламу можно. будет показываться над любым списком файлов или папок */
  255.  
  256. if ($info['type'] == '2')
  257.         {
  258.  
  259.         // Снанируем папку. Если есть скриншот или описание в файле, то автоматом находим их и выводим.
  260.  
  261.         include_once 'inc/scan.php';
  262.  
  263.         if ($set_dc['autoico'] == 1 && !file_exists($info['s_name'] . '/ico.png'))
  264.                 {
  265.                 include_once 'inc/jar_ico.php';
  266.  
  267.                 }
  268.  
  269.         echo 'Название: ' . $info['name'] . '<br />';
  270.         if (!empty($info['about']))
  271.                 {
  272.                 echo 'Описание: ' . bbcode(br($info['about'])) . '<br />';
  273.                 }
  274.  
  275.         if (!empty($info['author']))
  276.                 {
  277.                 echo 'Производитель: ' . $info['author'] . '<br />';
  278.                 }
  279.  
  280.         if (!empty($info['version']))
  281.                 {
  282.                 echo 'Версия: ' . $info['version'] . '<br />';
  283.                 }
  284.  
  285.         if (!empty($info['lang']))
  286.                 {
  287.                 echo 'Язык: ' . $info['lang'] . '<br />';
  288.                 }
  289.  
  290.         if (!empty($info['genre']))
  291.                 {
  292.                 echo 'Жанр: ' . $info['genre'] . '<br />';
  293.                 }
  294.           else
  295.                 {
  296.                 $genre = $db->query("SELECT `name` FROM `files` WHERE `s_name`='$info[folder]' LIMIT 1")->fetch_assoc();
  297.                 echo 'Категория: ' . $genre['name'] . '<br />';
  298.                 }
  299.  
  300.                 $com = $db->query("SELECT * FROM `comment` WHERE `file`='$info[id]'")->num_rows;
  301.                 echo '<div><a href="comment.php?id=' . $id . '">Комментарии</a>: [' . $com . ']</div>';
  302.  
  303.                 echo '<div>Рейтинг: ' . $rat . ' [<a href="?id=' . $id . '&rat=plus">+</a> ' . $info['plus'] . '] : [<a href="?id=' . $id . '&rat=minus">-</a> ' . $info['minus'] . ']</div>';
  304.                 if (isset($_GET['rat']) && ($_GET['rat'] == 'plus' || $_GET['rat'] == 'minus'))
  305.                         {
  306.                         if (isset($_POST['code']) && $_POST['code'] == $_SESSION['code'])
  307.                                 {
  308.                                 if (!isset($_SESSION["id_$info[id]"]))
  309.                                         {
  310.                                         $db->query("UPDATE `files` SET `" . $_GET['rat'] . "`=`" . $_GET['rat'] . "`+1 WHERE `id`='" . $info['id'] . "' LIMIT 1");
  311.                                         echo '<div>Спасибо. Ваш голос учтен.</div>';
  312.                                         $_SESSION["id_$info[id]"] = $info['id'];
  313.                                         }
  314.                                   else
  315.                                         {
  316.                                         echo '<div>Извините. Вы уже голосовали.</div>';
  317.                                         }
  318.                                 }
  319.                           else
  320.                                 {
  321.                                 if ($_GET['rat'] == 'plus')
  322.                                         {
  323.                                         $ok = 'плюс';
  324.                                         }
  325.                                 elseif ($_GET['rat'] == 'minus')
  326.                                         {
  327.                                         $ok = 'минус';
  328.                                         }
  329.  
  330.                                 $cod = rand(1000, 9999);
  331.                                 $_SESSION['code'] = $cod;
  332.                                 echo '<form action="" method="post">
  333.  
  334.        введите код:
  335.        <b>' . $_SESSION['code'] . '</b>
  336. <input type="text" size="4" maxlength="4" name="code" />
  337.  
  338. <input type="submit" value="' . $ok . '" />
  339.  
  340. </form>';
  341.                                 }
  342.                         }
  343.  
  344.         if ($info['loads'] > 0)
  345.                 {
  346.                 echo "<div>Скачиваний: $info[loads]
  347. Последнее: " . timep($info['lasttime']) . "</div>";
  348.                 }
  349.  
  350.         echo '</div>';
  351.         }
  352.  
  353. // $result = $db->query("SELECT * FROM `files` $where ORDER by `$sort` $msort");
  354.  
  355. pages();
  356. $_PAGING = new Paging($db);
  357. $_PAGING->set_page_size($elements);
  358.  
  359. // echo '<div class="hm">';
  360. //$sort = 'name';
  361. $r = $_PAGING->get_page("SELECT * FROM `files` $where ORDER by `$sort` $msort");
  362.  
  363. while ($list = $db->get_array($r))
  364.         {
  365.         if ($list['type'] == 1)
  366.                 {
  367.                 $act = 'navi';
  368.                 }
  369.         elseif ($list['type'] == 2)
  370.                 {
  371.                 $act = 'file';
  372.                 }
  373.         elseif ($list['type'] == 3)
  374.                 {
  375.                 $act = 'load';
  376.                 }
  377.  
  378.         if ($list['type'] == 1)
  379.                 {
  380.                 $all = $db->query('SELECT * FROM `files` WHERE `folder` LIKE  "' . $list['s_name'] . '%" AND `type`="2";')->num_rows;
  381.                 $new = $db->query('SELECT * FROM `files` WHERE `folder` LIKE  "' . $list['s_name'] . '%" AND `type`="2" AND `upltime`>' . $new_time . ';')->num_rows;
  382.                 if ($new['0'] > 0)
  383.                         {
  384.                         $new = "/+$new[0]";
  385.                         }
  386.                   else
  387.                         {
  388.                         $new = "";
  389.                         }
  390.  
  391.                 $count = '[' . $all . $new . ']';
  392.  
  393.                 // $db->query("UPDATE `files` SET `count`='" . $count . "' WHERE `id`='".$list['id']."' LIMIT 1");
  394.  
  395.                 }
  396.         elseif ($list['size'] != 0)
  397.                 {
  398.                 $count = size($list['size']);
  399.                 $jar = basename($list['s_name']);
  400.                 $jar = str_replace('.jar', '', $jar);
  401.                 if (!is_file($list['folder'] . '/' . $jar . '.jad'))
  402.                         {
  403.                         include 'inc/jad_logo.php';
  404.  
  405.                         }
  406.                 }
  407.           else
  408.                 {
  409.                 $count = '';
  410.                 }
  411.  
  412.         $name = str_replace('_', ' ', $list['name']);
  413.         if ($list['type'] == '3')
  414.                 {
  415.                 if (!empty($list['models']))
  416.                         {
  417.                         $name = bbcode(br($list['models']));
  418.                         }
  419.  
  420.                 echo "<div class=\"link\"><img src=\"images/$list[type].gif\" alt=\"&raquo;\"/> $name
  421. Скачать [<a href=\"index.php?id=" . $list['id'] . "&act=$act&type=jar\">JAR</a>][<a href=\"index.php?id=" . $list['id'] . "&act=$act&type=jad\">JAD</a>][$count]</div>";
  422.                 }
  423.           else
  424.                 {
  425.                 if ($autoico == 1 && file_exists($list['s_name'] . '/ico.png'))
  426.                         {
  427.                         $ico = $list['s_name'] . '/ico.png';
  428.                         }
  429.                   else
  430.                         {
  431.                         $ico = "images/$list[type].gif";
  432.                         }
  433.  
  434.                 echo "<div class=\"link\"><img src=\"$ico\" alt=\"&raquo;\"/> <a href=\"index.php?id=" . $list['id'] . "&act=$act\">" . $name . "</a> $count</div>";
  435.                 }
  436.         }
  437.  
  438. // echo '</div>';
  439.  
  440. view_pages();
  441. /* сюда вставляется реклама после каждого списка*/
  442.  
  443. if ($id != 0)
  444.         {
  445.         $get_id = "?id=$id";
  446.         }
  447.   else
  448.         {
  449.         /* сюда можно вставить рекламу для главной */
  450.         }
  451.  
  452. //echo '<div class="bottom"><a href="setting.php' . $get_id . '">настройки сайта</a></div>';
  453. echo "<div class=\"hm\">$put</div>\n";
  454.  
  455. include '../inc/foot.php';
  456.  
  457. ?>
  458.  

(Отредактировано автором: 24 Июня, 2011 - 15:35:07)

 
 Top
EuGen Администратор
Отправлено: 24 Июня, 2011 - 15:35:43
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Первое впечатление - печально.
Дело здесь скорее в неочевидности некоторых конструкций, неструктурности кода.
То есть взять прость "загруз-центр" и добавить его в проект "как есть" нельзя, и это плохо.
Ну и вопрос архитектурных предпочтений. Лично я предпочитаю объектный подход и использование паттернов.

Для начального уровня работы же - неплохо.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Coder1994
Отправлено: 24 Июня, 2011 - 15:37:02
Post Id


Частый гость


Покинул форум
Сообщений всего: 213
Дата рег-ции: Май 2010  
Откуда: Россия, Ростов-на-Дону


Помог: 3 раз(а)




EuGen пишет:
Первое впечатление - печально.
Дело здесь скорее в неочевидности некоторых конструкций, неструктурности кода.
То есть взять прость "загруз-центр" и добавить его в проект "как есть" нельзя, и это плохо.
Ну и вопрос архитектурных предпочтений. Лично я предпочитаю объектный подход и использование паттернов.

Для начального уровня работы же - неплохо.

А можете дать пару замечаний по улучшению кода?
Может его можно упростить?
Или же более структурировать?
 
 Top
EuGen Администратор
Отправлено: 24 Июня, 2011 - 15:46:35
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Как улучшить? Здесь можно привести множество примеров и поставить множество задач.
Но я дам Вам пока лишь одну - постарайтесь изменить код так, чтобы его можно было легко переносить из одного проекта в другой. Чтобы можно было гибко настраивать. То есть, например, я ничего не знаю ни о true_user.php ни о functions.php
В принципе у Вас должен получиться некоторый класс, предоставляющий API для конечного проекта (где нужно использовать загрузчик).


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB