#21 2011.04.30 21:00

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2279
Карма: 19
Профиль

Re: ЗЦ

Мда, как задумал не получилось, переделал на одну такую зафигулину... Потом узнаете/поржете smile
Ну мне эта идея кажется не плохой.
- - - -
Да ладно, чего говнокод таить big_smile

sys/funs.php

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
define('TIMER'microtime(true));
 
//...
 
function html($body){
exit('<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html>
<head>
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="'.$_SERVER['HTTP_HOST'].'" />
<title>'.$_SERVER['HTTP_HOST'].'</title>
<link rel="stylesheet" type="text/css" href="sys/default.css" />
</head>
<body>
<div class="head">DOWNLOADS</div>
<div class="f1"></div>
<div class="f2"></div>
<div class="f3"></div>
<div class="f4"></div>
<div class="f5"></div>
'.$body.'
<div class="h1"></div>
<div class="h2"></div>
<div class="h3"></div>
<div class="h4"></div>
<div class="h5"></div>
<div class="foot">&copy; <a href="/">Home</a> by TiPsun ('.round(microtime(true) - TIMER3).')</div>
<div class="f1"></div>
<div class="f2"></div>
<div class="f3"></div>
<div class="f4"></div>
<div class="f5"></div>
</body>
</html>');}
 
?>

При прямом выводе не работает header();
А так на 1 инклуд меньше... И вообще удобно вроде...
- - - -
Скоро выложу новую говноверсию...

Отредактировано tipsun (2011.05.01 14:12)

Неактивен

#22 2011.05.01 16:40

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2279
Карма: 19
Профиль

Re: ЗЦ

Подсчет хочу осуществить путем самописного класса... Если конечно получится написать этот класс.

Неактивен

#23 2011.05.01 20:01

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2279
Карма: 19
Профиль

Re: ЗЦ

Черт, надо было не так. А глобально... 1 раз просканировал и занес в базу все папки сразу.
- - - -
Не знаю как сделать, такой как есть класс оставлю...

Отредактировано tipsun (2011.05.01 20:03)

Неактивен

#24 2011.05.01 20:39

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2279
Карма: 19
Профиль

Re: ЗЦ

Фух
- - - -
Про "время актуальности" забыл... епт
- - - -
Поправил...

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
 
//вот для чего нужен был strpos($_GET['dir'], '/.');
//чтоб не указывали ..... типа ?dir=_Kartinki/./././240x320
//от остального прег_матч, чтоб в начале не указалвывали / или ./ т.д.
//правда потом в папку нельзя будет назвать типа .olool т.к. olo/.ololo опознается как ошибкэ
//потом в прием папки обязательно добавлю
 
class dirStat
  {
    function count($dir)
    {
      GLOBAL $db;
      
      $dir preg_replace(array('/\/{2,}/''/\/\.{1,}/'), array('/'null), $dir);
      
      $query $db->prepare("SELECT `count` FROM `dirs` WHERE `name`=? AND `time`<'".$_SERVER['REQUEST_TIME']."' LIMIT 1;");
      $query->execute(array($dir));
      
      if($query->rowCount())
      {
        return $query->fetchColumn();
      }
      
      $this->count 0;
      self::run($dir);
      
      $query $db->prepare("REPLACE INTO `dirs` SET `name`=?, `count`='".$this->count."', `time`='".$_SERVER['REQUEST_TIME']."+600';");
      $query->execute(array($dir));
      
      return $this->count;
    }
    
    function run($dir)
    {
      if(is_dir('./'.$dir) and false !== ($opendir opendir('./'.$dir)))
      {
        while(false !== ($unit readdir($opendir)))
        {
          if('.' !== $unit and '..' !== $unit
          and 'about.php' !== $unit
          and 'index.php' !== $unit
          and 'sys' !== $unit
          and 'Thumbs.db' !== $unit)
          {
            if(is_dir('./'.$dir.'/'.$unit))
            {
              self::run($dir.'/'.$unit);
            }
            else
            {
              $this->count += 1;
            }
          }
        }
        
        closedir($opendir);
      }
      
      return;
    }
  } $STAT = new dirStat;
 
 
//использование...
echo $STAT->count($dir);
 
?>

Отредактировано tipsun (2011.05.02 09:21)

Неактивен

#25 2011.05.01 21:50

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2279
Карма: 19
Профиль

Re: ЗЦ

Зря я делал '/' при получении каталога! sad

Неактивен

#26 2011.05.02 00:21

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2279
Карма: 19
Профиль

Re: ЗЦ

Подскажите пожалуйста, печально ли будет если я ограничу прием адреса папки до

Код:

1
<?php !preg_match('/^[a-z0-9\_\-][a-z0-9\_\-\/]{1,}$/i'$_GET['dir'])) ?>

. Точка все портит. Из-за нее приходится дополнительно лепить защиту.

Отредактировано tipsun (2011.05.02 09:27)

Неактивен

#27 2011.05.02 09:00

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6570
Карма: 107
Профиль Веб-сайт

Re: ЗЦ

ну сам смотри, как папки называть будешь

Неактивен

#28 2011.05.02 09:08

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2279
Карма: 19
Профиль

Re: ЗЦ

Ну по-моему лучше сразу ограничить один раз прег_матчем чем потом везде на спец символы обрабатывать, точки учитывать... Если не учитывать, то в базу урл будет записываться с точками... Ну т.е. вроде одно и то же для ::is_dir():: , а в базу идет со всем этим мусором... /./././

этот мусор потом чистить... А так надо будет перед занесением только повторяющиеся слеши убрать.

Отредактировано tipsun (2011.05.02 09:12)

Неактивен

#29 2011.05.02 16:28

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2279
Карма: 19
Профиль

Re: ЗЦ

Как я запарился с этим говнозагрузником...
Дырку тоже закрыл. С ::$page:: связана была в index.php
- - - -
Добавил последнюю версию.
Посмотрите пожалуйста, кто не занят делом, если ли ошибки/дырки...

Отредактировано tipsun (2011.05.02 16:36)

Неактивен

#30 2011.05.02 18:49

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: ЗЦ

ну по коду я незнаю,но так ошибок нету,считает норм))С такими темпами ты уже из зц напишешь полноценный загруз центр)))если будешь его еще дополнять чем-то,или делать его более крупным,то небольшая просьба,если можешь то сделай чтоб делало скрины с flesh а то сколько я смотрел зц,не один не делает скрины с flesh файлов)))))себе поставлю твой зц для картинок)))

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.013 s