Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Библиотека самых бесполезных кусков кода, или как не стоит писать на РНР 
:(
    Опции темы
IZ@TOP
  Дата 23.8.2006, 09:47 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Недавно было обсуждение в одной теме - обсуждалось сколько можно валяться под столом глядя в чужой код.
Эта тема будет посвящена всему тому что пишут некоторые особоодаренные индивидумы. И/или начинающие пыхеры.
Прошу господ программистов постить, все что подвернется под руку, заслуживающее, так или иначе, постинга в данной теме. Желательно с комментарием о причине его ужасающей бесполезности, проблем безопасности и просто плохого стиля программирования.

Для новичков это будет основой для оценки своего кода.

Я пожалуй начну первым. Следующий код мне прислал человек, которого я собеседовал для своей старой работы на з.п. приблезительно близкой к 1000 у.е.:
Код

<?php
/**
 * File name admin.php
 * @author anonymous
 * 
 * Данный код предоставлен только в познавательных целях. 
 * Ни кто не несет ответственности за проблемы возникшие в результате
 * его использования.
 */


/**
 * Аффтар! Ну скажи мне, что это за непонятные инклуды и вызовы функций? 
 * Для чего?
 */

#include ('index2.php');
#include ('news.php');
#include ('shubl.php');
#shablon();
#addnews();
#shablon2();'



/**
 * Код конечно закоментен, но видно register_globals стоит в on))
 * Запомните дети - ни когда и ни при каких обстоятельствах не пользуйтесь 
 * авторегистрацией глобальных переменных или их симуляторами вроде extract'a!
 */
/*
  if ($HTTP_SERVER_VARS["argc"] != 0)
  {
   header("location: $PHP_SELF");
   exit;
  }
  */
  //global $pasfile;
//echo $pasfile;

/**
 * Замечательная конструкция! Естественно у меня на FreeBSD где расположен мой сервер
 * пароль от админки будет лежать в корне на диске C:! И естественно если он не найден
 * я умолчу об этом факте дабы ни кто не знал почему на странице пусто!
 */
if ($pasfile == 0) {  
   if (!file_exists ("c:\\password.txt"))
     {
//      header ("Location: invalpas.html");
      exit;
     }
   if ($fp = fopen("c:\\password.txt", "r")) 
     {
         
     /**
      * Какая однако красота! Тут без поллитра не разберешься что человек хотел
      * сделать! Возможно проще использовать explode, file? :p
      */
     while (feof($fp) == 0) 
      { 
       $line = trim(fgets($fp,1000)); 
       $userPass = split(",", $line); 
       if (($userPass[0] == $username) and ($userPass[1] == $password)) 
        { 
        $file =  fopen("user.txt", "w");
         fwrite ($file,$username);
 $pasfile = 1;
   $spisok="none";  
   $title="Панель администрирования сайта";
   $head="Панель администрирования сайта";
   
   /**
    * А вот это вообще супер! Кто ни будь слышал что такое switch? А то я что-то подзабыл!
    */
   
 if (@$link=="addnews") { 
   require ('index2.html');
   require ('admin/news.html');
   require ('shubl.html');
 }
 if (@$link=="adduser") { 
   require ('index2.html');
   require ('admin/adduser.html');
   require ('shubl.html');
 } 
  if (@$link=="") { 
   require ('index2.html');
   require ('admin/pan.html');
   require ('shubl.html');
 } 
 
   exit;
        } 
      }
      
 /**
  * Ну конечно эти комментарии многословно описывают все что нам 
  * необходимо знать о коде! Пусть они и встретились нам разок -
  * пустячек, а приятно)))
  */
 
//** invalid username / password entered. **
  //    include ('invalpas.html');
   $pasfile = 0;
   header ("Location: invalpas.html");
     exit;
    }
} else
{
   $spisok="none";  
   $title="Панель администрирования сайта";
   $head="Панель администрирования сайта";
   
   
 /**
  * Ну и опять таки, я все ни как не могу вспомнить зачем
  * иногда пользуюсь кострукцией switch/case! ХЭЛП!
  */
 if (@$link=="addnews") { 
   require ('index2.html');
   require ('admin/news.html');
   require ('shubl.html');
 }
 if (@$link=="adduser") { 
   require ('index2.html');
   require ('admin/adduser.html');
   require ('shubl.html');
 } 
  if (@$link=="") { 
   require ('index2.html');
   require ('admin/pan.html');
   require ('shubl.html');
 } 
}
/*global $login;
if ($login == "ok"){
require ('index2.html');
require ('admin/addnews.html');
require ('shubl.html');
}
else
{
require ('invalpas.html');
}
*/
?>


Немного комментария к коду:
1. Ужасный стиль программирования.
2. Проблемы безопасности.
3. Если его и оптимизировать, то только переписав заново. Уж больно не оптимально.

И еще ссылка по теме http://forum.vingrad.ru/index.php?showtopic=108540. Собственно благодаря ему и радилась идея создать данный топик.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Greendrake
Дата 23.8.2006, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 14.7.2005

Репутация: нет
Всего: 6



Думаю, любому более-менее опытному программисту сложно удержаться от пристрастной и субъективной оценки чужого кода. Зачастую превалирует "написано не так как пишу я, а я пишу наиболее оптимально, поэтому этот код - так себе".

Строгих и доказанных правил написания кода не существует - это творческий процесс (я не имею ввиду соблюдение читаемости, отступы и комментарии - это безусловно). Поэтому я убеждён, что придираться нужно в основном к работе кода. 

Это сообщение отредактировал(а) Greendrake - 23.8.2006, 09:56
PM MAIL   Вверх
IZ@TOP
Дата 23.8.2006, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Greendrake, полностью поддерживаю! Именно этот вопрос я и хотел затронуть в данной теме! Стоит хотя бы пройтись по ссылке в теме.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Mal Hack
Дата 23.8.2006, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



Цитата(Greendrake @  23.8.2006,  10:55 Найти цитируемый пост)
Думаю, любому более-менее опытному программисту сложно удержаться от пристрастной и субъективной оценки чужого кода. Зачастую превалирует "написано не так как пишу я, а я пишу наиболее оптимально, поэтому этот код - так себе".

Не согласен. Опытному кодер нормально воспримет код, если он однообразный и написан по человечески. А привычки (мелочи всякие) это можно и пропустить.

Цитата(Greendrake @  23.8.2006,  10:55 Найти цитируемый пост)
Строгих и доказанных правил написания кода не существует - это творческий процесс (я не имею ввиду соблюдение читаемости, отступы и комментарии - это безусловно). Поэтому я убеждён, что придираться нужно в основном к работе кода. 

Вообще, ыроде был рекомендательный ISO...
PM ICQ   Вверх
smartov
Дата 23.8.2006, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



Цитата(Mal Hack @  23.8.2006,  10:18 Найти цитируемый пост)
Опытный кодер нормально воспримет код, если он однообразный и написан по-человечески

Поддерживаю.

Одно дело творчество. Другое дело незнание/неумение/нежелание. Творчество в программировании должно быть логически обосновано. А я не могу найти логического, стилистического или иного обоснования для кода, которым мне достался. Например:

Код

   if (!empty($_SESSION['loa_sortfield']))
      {
      if ($_SESSION['loa_sortfield'] == "loa_title")
         {
         $orderby = "obj_title";
         $ordertype = "text";
         }
      elseif ($_SESSION['loa_sortfield'] == "loa_type")
         {
         $orderby = "object";
         $ordertype = "text";
         }
      elseif ($_SESSION['loa_sortfield'] == "loa_action")
         {
         $orderby = "action";
         $ordertype = "text";
         }
      elseif ($_SESSION['loa_sortfield'] == "loa_date")
         {
         $orderby = "adate";
         $ordertype = "text";
         }
      elseif ($_SESSION['loa_sortfield'] == "loa_time")
         {
         $orderby = "atime";
         $ordertype = "text";
         }
      elseif ($_SESSION['loa_sortfield'] == "loa_user")
         {
         $orderby = "login";
         $ordertype = "text";
         }
      elseif ($_SESSION['loa_sortfield'] == "loa_ip")
         {
         $orderby = "ip_address";
         $ordertype = "text";
         }
      }


switch не только сэкономит тут место, но и сделает код читаемее и саппортнее. Я уж молчу о постоянно повторяющейся строке $ordertype = "text"; 7 раз! Одна и та же строка! Это у них творчество такое?

Или еще из перлов того проекта.
Для выставления прав на файлы, господа предыдущие "кодеры" использовали shell_exec('chmod....') (при том что есть родная функция), ну ладно, это дело такое, НО если вы уж так любиете shell_exec то зачем (?!) было для копирования директории со всем содержимым в другое место писать функцию (!) рекурсивную естественно, вместо того, чтобы просто и банально, как раз тут и заюзать shell_exec('cp...'). 
Мы иногда думаем, что может им за строчки кода платили.....

Или файлы, на 20 кб без (внимание!) без хотя бы единственной функции (!), в которых без поллитра не разобраться. То есть файл - одна большая процедура. При чем написана так, что идет if ($_POST...) то 200 строк кода, else - еще 200... В некоторых файлах вложенность скобок доходила до 8 (!).

Так же господа "те кодеры" постоянно перед самым выходом из файла, или перед директивой exit, ансетили по 5-8 переменок. В каждом месте вызова exit. В общем о каком творчестве речь? Это просто дилетанство.

Добавлено @ 12:00 
IZ@TOP
Код

      * сделать! Возможно просто explode(',', file_get_contents(...)) :p
      */
     while (feof($fp) == 0) 
      { 
       $line = trim(fgets($fp,1000)); 
       $userPass = split(",", $line); 


Просто explode не поможет. Нужно читать построчно.
Это если сначала $f =  file(...) а потом foreach ($f...) ... explode, то да.

Это сообщение отредактировал(а) smartov - 23.8.2006, 11:52
PM MAIL   Вверх
IZ@TOP
Дата 23.8.2006, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Цитата(smartov @  23.8.2006,  12:49 Найти цитируемый пост)
Просто explode не поможет. Нужно читать построчно.
Это если сначала $f =  file(...) а потом foreach ($f...) ... explode, то да.

Естественно!))) Щас поправим)))


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Vaulter
Дата 23.8.2006, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: нет
Всего: 22



ну что ж..вверили мне систему сайтов. и не смешно мне было отнюдь smile
для начала:
Код

function mailsender($a, $b, $c, $d)
{
$head      = "Content-type: text/html; charset=windows-1251\n";
$head     .= "From: ************\n";
$head     .= "Reply-To: ***********\n";
    
if ($a == "1") 
{
$query333 = "select * from dec_mess where typemess='1'";
$result333 = mysql_query($query333);
$arw333 = mysql_fetch_array($result333);
if ($d != "0") { $ddd = 500+$d; $subj = "Номер заказа: $ddd\r\n"; $mess = "Номер заказа: $ddd\r\n"; }
else { $subj = ""; $mess = ""; }
$subj .= $arw333['subj']; 
$mess .= $arw333['mess']; 
}
elseif ($a == "2") 

$query333 = "select * from dec_mess where typemess='2'";
$result333 = mysql_query($query333);
$arw333 = mysql_fetch_array($result333);
if ($d != "0") { $ddd = 500+$d; $subj = "Номер заказа: $ddd\r\n"; $mess = "Номер заказа: $ddd\r\n"; }
else { $subj = ""; $mess = ""; }
$subj .= $arw333['subj']; 
$mess .= $arw333['mess'];
}
elseif ($a == "3") 

$query333 = "select * from dec_mess where typemess='3'";
$result333 = mysql_query($query333);
$arw333 = mysql_fetch_array($result333);
if ($d != "0") { $ddd = 500+$d; $subj = "Номер заказа: $ddd\r\n"; $mess = "Номер заказа: $ddd\r\n"; }
else { $subj = ""; $mess = ""; }
$subj .= $arw333['subj']; 
$mess .= $arw333['mess'];
}
elseif ($a == "4") 
{
$query333 = "select * from dec_mess where typemess='4'";
$result333 = mysql_query($query333);
$arw333 = mysql_fetch_array($result333);
if ($d != "0") { $ddd = 500+$d; $subj = "Номер заказа: $ddd\r\n"; $mess = "Номер заказа: $ddd\r\n"; }
else { $subj = ""; $mess = ""; }
$subj .= $arw333['subj']; 
$mess .= $arw333['mess']; 
}


  if ($c == "0")
  {
$query = "select email from dec_users where type_user='$b'";
$result = mysql_query($query);
  while ($arw = mysql_fetch_array($result))
  {
  $to = "$arw[email]";
  mail($to, $subj, $mess, $head);
  }
  }
  else
  {
  $query = "select id_kto_vip from dec_orders where id='$c'";
  $result = mysql_query($query);
  $arw = mysql_fetch_array($result);
  $query = "select email from dec_users where id='$arw[id_kto_vip]'";
  $result = mysql_query($query);
  $arw = mysql_fetch_array($result);
  $to = $arw['email'];
  mail($to, $subj, $mess, $head);
  }
  
}

прониклись? человеку деньги за это платились..... скотина...


--------------------
PM MAIL WWW ICQ   Вверх
smartov
Дата 23.8.2006, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



Цитата(Vaulter @  23.8.2006,  12:13 Найти цитируемый пост)
($a, $b, $c, $d)

Убило наповал smile
PM MAIL   Вверх
Vaulter
Дата 23.8.2006, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: нет
Всего: 22



гы, ща кстати заметил вот еще, как он его вызывал:
Код

mailsender("2", "2", "0", "$idorder");

ей богу не придумал! smile такое невозможно придумать smile

Добавлено @ 13:55 
а это я называю "упорный тип":
Код

  echo "день: <select name=dat_d><option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5<option value=6>6<option value=7>7<option value=8>8<option value=9>9<option value=10>10<option value=11>11<option value=12>12<option value=13>13<option value=14>14<option value=15>15<option value=16>16<option value=17>17<option value=18>18<option value=19>19<option value=20>20<option value=21>21<option value=22>22<option value=23>23<option value=24>24<option value=25>25<option value=26>26<option value=27>27<option value=28>28<option value=29>29<option value=30>30<option value=31>31</select>";
  echo " месяц: <select name=dat_m><option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5<option value=6>6<option value=7>7<option value=8>8<option value=9>9<option value=10>10<option value=11>11<option value=12>12</select>";
  echo " год: <select name=dat_y><option value=2006>2006<option value=2007>2007<option value=2008>2008<option value=2009>2009<option value=2010>2010<option value=2011>2011<option value=2012>2012</select><br>";



Добавлено @ 13:57 
из разряда тоже "упорного типа" smile
Код

if ($a['type_user']==6) $query = "select * from dec_orders where status = '3' OR status = '4' OR status='7' OR status = '9' OR status = '10' OR status='11' OR status='12' OR status='16' ORDER BY id DESC";
else $query = "select * from dec_orders where status = '3' OR status = '4' OR status='7' OR status = '9' OR status = '10' OR status='11' OR status='12' OR status='16' AND id_kto='$_SESSION[auth]' ORDER BY id DESC";




--------------------
PM MAIL WWW ICQ   Вверх
IvanB
Дата 23.8.2006, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 23.5.2005
Где: Irkutsk

Репутация: нет
Всего: 5



Цитата(Vaulter @  23.8.2006,  13:54 Найти цитируемый пост)
а это я называю "упорный тип":
Выделить всёкод PHP
1:
2:
3:
    
  echo "день: <select name=dat_d><option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5<option value=6>6<option value=7>7<option value=8>8<option value=9>9<option value=10>10<option value=11>11<option value=12>12<option value=13>13<option value=14>14<option value=15>15<option value=16>16<option value=17>17<option value=18>18<option value=19>19<option value=20>20<option value=21>21<option value=22>22<option value=23>23<option value=24>24<option value=25>25<option value=26>26<option value=27>27<option value=28>28<option value=29>29<option value=30>30<option value=31>31</select>";
  echo " месяц: <select name=dat_m><option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5<option value=6>6<option value=7>7<option value=8>8<option value=9>9<option value=10>10<option value=11>11<option value=12>12</select>";
  echo " год: <select name=dat_y><option value=2006>2006<option value=2007>2007<option value=2008>2008<option value=2009>2009<option value=2010>2010<option value=2011>2011<option value=2012>2012</select><br>";


Добавлено @ 13:57 
из разряда тоже "упорного типа" smile
Выделить всёкод PHP
1:
2:
    
if ($a['type_user']==6) $query = "select * from dec_orders where status = '3' OR status = '4' OR status='7' OR status = '9' OR status = '10' OR status='11' OR status='12' OR status='16' ORDER BY id DESC";
else $query = "select * from dec_orders where status = '3' OR status = '4' OR status='7' OR status = '9' OR status = '10' OR status='11' OR status='12' OR status='16' AND id_kto='$_SESSION[auth]' ORDER BY id DESC";

А вот в этом как раз ничего плохого не вижу.... )
Хотя переносы всё же стоит иногда делать.

--------------------
Закон отладки: Каждая последняя ошибка является предпоследней.
PM MAIL ICQ   Вверх
skyboy
Дата 23.8.2006, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



IvanB, "плохого" может и нету здесь... но циклы, циклы-то на кой ляд придумали?!
PM MAIL   Вверх
Vaulter
Дата 24.8.2006, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: нет
Всего: 22



IvanB, ну и плохо, что не видишь ничего плохого! smile


--------------------
PM MAIL WWW ICQ   Вверх
IZ@TOP
Дата 24.8.2006, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



IvanB, спешал фо ю эта тема была создана, коль ничего страшного в том коде не видишь)))

Записался в программисты?
Будь так добр писать красиво!
Чтоб понятно и с комментом,
Безопасно для системы,
Чтоб потом не засмеяли,
И к пробабкам не послали!


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Vaulter
Дата 24.8.2006, 11:36 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: нет
Всего: 22



IZ@TOP, жжошь! smile
продолжая тему.

Код

<table border="0" width="100%" cellspacing="0" cellpadding="0">
    <tr>
        <td width="50%" class="lksss" valign="top">
<br>
<?
include("dblib.inc.php");
$query = "select * from baza where cat='1'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_1.html">Бухучёт, статистика</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='2'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_2.html">Иностранные языки</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='3'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_3.html">История</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='4'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_4.html">Медицина</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='5'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_5.html">Педагогика</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='6'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_6.html">Политология</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='7'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_7.html">Программирование</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='8'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_8.html">Психология</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='9'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_9.html">Разное</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='10'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_10.html">Русский язык и литература</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='11'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_11.html">Социология</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='12'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_12.html">Технические</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='13'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_13.html">Философия</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='14'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_14.html">Финансы и кредит</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='15'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_15.html">Химия и физика</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='16'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_16.html">Экономика</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='17'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_17.html">Юриспруденция</a> <small>(<?=$nm?>)</small>
</td>
        <td width="50%" class="lksss" valign="top">
<b>Шпаргалки школьникам:</b><br>
<?
include("dblib.inc.php");
$query = "select * from baza where cat='18'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_18.html">Литература</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='19'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_19.html">Математика</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='20'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_20.html">История</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='21'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_21.html">Человек и общество</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='22'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_22.html">Биология</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='23'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_23.html">Иностранные языки</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='24'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_24.html">Русский язык</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='25'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_25.html">Информатика</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='26'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_26.html">Право</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='27'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_27.html">Обществознание</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='28'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_28.html">География</a> <small>(<?=$nm?>)</small>
<?
$query = "select * from baza where cat='29'";
$result = mysql_query($query);
$nm = mysql_num_rows($result);
?>
<a href="./wapcat_29.html">Природоведение</a> <small>(<?=$nm?>)</small>
</td>
</tr>
</table>



--------------------
PM MAIL WWW ICQ   Вверх
smartov
Дата 24.8.2006, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



млиин.. 29 раз... упорный тип, без вопросов... он наверное себе макросы в редакторе писал smile
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Избранное | Следующая тема »


 




[ Время генерации скрипта: 0.2489 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.