проверьте код пожалуйста @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 25 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
realweb
новый человек
0
Сообщения: 19
Зарегистрирован: 15.07.05
Заголовок сообщения: проверьте код пожалуйста
Сообщение Добавлено: 14 Сентябрь 2005, 16:27:30 
Я кодю на PHP совсем недавно, полгода, и только ради зарабатывания
денег. Пожалуйста, посмотрите куски моего кода и скажите, я полный
ламер? Есть какие-то огрехи ( не в плане алгоритмов а типа
использование устаревших команд и др. ) ?

Код:
if ( ! defined ( "FILES_SYSTEM" ) )
{
   
   define ( "FILES_SYSTEM" , true );
   
   class Files
   {
         
      //
      // Constructor
      //
            
      function Files ()
      {
      }
      
      function getrow ( $id = 0 )
      {
         global $db;
         $sql = "SELECT * FROM " . FILES_TABLE . " WHERE id='$id' LIMIT 1";
         $result = $db -> sql_query ( $sql ) or die ( $db -> sql_error ( ) );
         return $db -> sql_fetchrow ( $result );
      }
      
      function getextension ( $name = "" )
      {
         return substr ( strrchr ( $name , "." ) , 1 );
      }
      
      function getrandomname ()
      {
         return md5 ( rand ( time () , 1 ) );
      }
      
      function getuniquefilename ( $dir = "" , $extension = "" )
      {
         $name = $this -> getrandomname () . "." . $extension;
         while ( file_exists ( $this -> rightpath ( $dir . $name ) ) )
         {
            $name = $this -> getrandomname () . "." . $extension;
         }
         return $name;
      }
      
      function upload ( $name = "" , $upload_dir = "" , $category = 0 , $comment = "" )
      {
         if ( ! isset ( $_FILES [ $name ] ) || ! is_uploaded_file ( $_FILES [ $name ] [ 'tmp_name' ] ) )
         {
            return -1;
         }         
         global $db;         
         $extension =  $this -> getextension ( $_FILES [ $name ] [ 'name' ] );
         $newname = $this -> getuniquefilename ( $upload_dir , $extension );
         if ( ! copy ( $_FILES [ $name ] [ 'tmp_name' ], $this -> rightpath ( $upload_dir . $newname ) ) )
         {
            if ( ! move_uploaded_file ( $_FILES [ $name ] [ 'tmp_name' ], $this -> rightpath ( $upload_dir . $_FILES [ $name ] [ 'name' ] ) ) )
            {
               echo "2";
               return -1;
            }
         }         
         $sql = "INSERT INTO " . FILES_TABLE . " (date,filename,realname,filesize,category,comment) VALUES ('" . date ('Y-m-d H:i:s') . "','" . $_FILES [ $name ] [ 'name' ] . "','" . $this -> rightpath ( $upload_dir . $newname ) . "','" . $_FILES [ $name ] [ 'size' ] . "','$category','$comment')";
         $db -> sql_query ( $sql ) or die ( $db -> sql_error ( ) );         
         //chmod ( $this -> rightpath ( $upload_dir . $newname ) , 0666 );            
         $sql = "SELECT * FROM " . FILES_TABLE . " WHERE realname='" . $this -> rightpath ( $upload_dir . $newname ) . "' LIMIT 1";
         $result = $db -> sql_query ( $sql ) or die ( $db -> sql_error ( ) );
         $row = $db -> sql_fetchrow ( $result );            
         return $row [ "id" ];         
      }
      
      function delete ( $id = 0 )
      {
         global $db;   
         $row = $this -> getrow ( $id );
         if ( ! empty ( $row [ "realname" ] ) )
         {
            if ( file_exists ( $row [ "realname" ] ) )
            {
               unlink ( $row [ "realname" ] );
            }
         }
         $sql = "DELETE FROM " . FILES_TABLE . " WHERE id='$id ' LIMIT 1";
         if ( $db -> sql_query ( $sql ) )
         {
            return true;
         }
         else
         {
            return false;
         }
      }
      
      function insert ( $path , $category = 0 , $comment = "" )
      {
         global $db;
         $name = basename ( $path );
         $upload_dir = dirname ( $path ) . "/";
         $extension =  $this -> getextension ( $name );
         $newname = $this -> getuniquefilename ( $upload_dir , $extension );
         if ( ! rename ( $this -> rightpath ( $upload_dir . $name ) , $this -> rightpath ( $upload_dir . $newname ) ) )
         {
            return -1;
         }
         $sql = "INSERT INTO " . FILES_TABLE . " (date,filename,realname,filesize,category,comment) VALUES ('" . date ('Y-m-d H:i:s') . "','$newname','" . $this -> rightpath ( $upload_dir . $newname ) . "','" . filesize ( realpath ( $this -> rightpath ( $upload_dir . $newname ) ) ) . "','$category','$comment')";
         $db -> sql_query ( $sql ) or die ( $db -> sql_error ( ) );
         $sql = "SELECT * FROM " . FILES_TABLE . " WHERE realname='" . $this -> rightpath ( $upload_dir . $newname ) . "' LIMIT 1";
         $result = $db -> sql_query ( $sql ) or die ( $db -> sql_error ( ) );         
         $row = $db -> sql_fetchrow ( $result );
         return $row [ "id" ];         
      }
      
      function buildthumbnail ( $from_fid = 0 , $width = 100 , $height = 100 )
      {
         $row = $this -> getrow ( $from_fid );
         $extension =  $this -> getextension ( $row [ "realname" ] );         
         $dir = dirname ( $row [ "realname" ] ) . "/";      
         $thumbname = $this -> getuniquefilename ( $upload_dir , $extension );                  
         if ( ! images_buildthumbnail ( $row [ "realname" ] , $this -> rightpath ( $dir . $thumbname ) , $width , $height ) )
         {
            return -1;
         }
         return $this -> insert ( $this -> rightpath ( $dir . $thumbname ) );
      }
      
      function rightpath ( $path = "" )
      {
         $patharray = explode ( "/" , $path );
         $count = count ( $patharray );
         $newpath = array ();
         for ( $i = 0 ; $i < $count ; $i ++ )
         {
            if ( $patharray [ $i ] != "." )
            {
               array_push ( $newpath , $patharray [ $i ] );
            }
         }
         $patharray = $newpath;
         $count = count ( $patharray );
         $path = "";
         for ( $i = 0 ; $i < $count ; $i ++ )
         {
            if ( ( $patharray [ $i + 1 ] == ".." && $patharray [ $i ] != ".." && $i < ($count-1) ) )
            {
               array_splice ( $patharray , $i , 2 );
               $path = "";
               $count = count ( $patharray );
               $i=0;
            }      
            else
            {
               $path .= $patharray [ $i ] . "/";
            }
         }
         $path = substr ( $path , 0 , -1 );
         return $path;
      }
      
   }
   
}
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 14 Сентябрь 2005, 17:05:52 
Сколько платите?
horn Муж.
соучастник
4
Сообщения: 582
Зарегистрирован: 19.05.04
Откуда: Москов
Сообщение Добавлено: 14 Сентябрь 2005, 17:36:33 
вот это действительно 5+ баллов :laugh:

_________________
корабли лавировали, лавировали и вылавировали
gregzem Муж.
новый человек
2
Сообщения: 252
Зарегистрирован: 29.04.03
Сообщение Добавлено: 14 Сентябрь 2005, 20:34:09 
realweb, приведите код всех 40 модулей Вашей CMS. В приведенном куске слабо отслеживается Conding Standart (видимо акцент был сделан в сторону PEAR?)
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 14 Сентябрь 2005, 20:35:40 
gregzem, :beer: :up: :beer:
realweb
новый человек
0
Сообщения: 19
Зарегистрирован: 15.07.05
Сообщение Добавлено: 14 Сентябрь 2005, 20:51:07 

gregzem писал(а):
realweb, приведите код всех 40 модулей Вашей CMS. В приведенном куске слабо отслеживается Conding Standart (видимо акцент был сделан в сторону PEAR?)



Хех, сам незнаю =), я же говорю что мало работаю с ПХП, просто хотел спросить присутствуют ли явные ляпы, связанные со своими особенностями языка ПХП, я не прошу вас тестить это на работоспособность, просто явные ляпы.
SkyInTheSea Муж.
новый человек
0
Сообщения: 170
Зарегистрирован: 17.06.05
Откуда: Moscow
Сообщение Добавлено: 14 Сентябрь 2005, 21:32:11 
realweb,
включе репортинг е_олл и сам проверь , или религия не позволяет ?

_________________
Я согласен бегать в табуне , но не под седлом и без узды... (с) Высоцкий
gregzem Муж.
новый человек
2
Сообщения: 252
Зарегистрирован: 29.04.03
Сообщение Добавлено: 14 Сентябрь 2005, 21:46:28 
оффтопик:
realweb, Ваш первый пост очень смахивает на "Господа, вчера мой воспаленный мозг сгенерировал новый листинг кода на PHP, но вот только не пойму, куда он мог бы пригодиться?! Может вы это ….(почесывая затылок и ковыряя пальцем в носу) посмотрите своим профессиональным взглядом и скажете, что это такое?"


Увы, я бессилен воспринять код больше 24 печатных строк (привычка со времен CGA монитора машины ЕС1841) за один раз. А здесь их аж на четыре экрана!!!
Хотя мой единственный стеклянный глаз видит, что с отступами у вас все в порядке. Предлагаю поапплодировать человеку стоя!
(sp)
соучастник
0
Сообщения: 559
Зарегистрирован: 22.01.05
Сообщение Добавлено: 14 Сентябрь 2005, 22:15:39 
За десять баксов прочитаю нудную мини-нотацию на тему "зачем в sql-запросах кавычки надо ставить ващевезде, а все вводимые переменные обрабатывать или хотя бы перепроверять".

_________________
baby`s got an atom bomb
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 15 Сентябрь 2005, 00:52:44 
gregzem, я полностью поддерживаю Ваш достойный сарказм и презрение в адрес побирушек и собирателей пустых бутылок на различных форумов, в том числе и таких как в этом случае:
http://deforum.ru/forum/viewtopic.php?t=39673
:beer:


Последний раз редактировалось Акела 15 Сентябрь 2005, 02:43:06, всего редактировалось 1 раз.
realweb
новый человек
0
Сообщения: 19
Зарегистрирован: 15.07.05
Сообщение Добавлено: 15 Сентябрь 2005, 02:40:37 

(sp) писал(а):
За десять баксов прочитаю нудную мини-нотацию на тему "зачем в sql-запросах кавычки надо ставить ващевезде, а все вводимые переменные обрабатывать или хотя бы перепроверять".

Это учтено и обрабатываеться вне данного класса.

Здаёться мне код у меня выглядит более или менее нормально (не говорю об алгоритмах), так как никто ничего толкового сказать не может.
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 15 Сентябрь 2005, 02:45:01 
realweb, Здаётся мне, что Вы нашли не совсем ту аудиторию, которая на халяву будет искать баги. :) Добро пожаловать в реальный мир.
realweb
новый человек
0
Сообщения: 19
Зарегистрирован: 15.07.05
Сообщение Добавлено: 15 Сентябрь 2005, 02:50:57 
БЛ% :mad: , я не прошу искать баги, вам 1000 раз повторять? Я прошу просто взгянуть и сказать насколько это выглядит "по-ламерски" в PHP так как я в нём не силён, и возможно использую какие-то старые команды.

Акела :roof: , можете гулять на все четыре стороны, я лично Вас ни о чём не просил. Прошу не флудит непотеме .
realweb
новый человек
0
Сообщения: 19
Зарегистрирован: 15.07.05
Сообщение Добавлено: 15 Сентябрь 2005, 02:54:29 
Это также касаеться товарища gregzem , horn и всех будущих флудеров намеревающихся написать сюда что-то до тупости несмешное.
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 15 Сентябрь 2005, 03:31:47 
realweb, на Ваш прямой вопрос отвечаю прямо!

1) Не Вам решать кто, что и где будет постить в этом форуме. И это к счастью.
2) Не Вам обвинять во флуде кого либо из постоянных участников форума в котрый Вы зашли как гость. Пока что флудите лично Вы.
3) Услуга, которую Вы ищите здесь, вполне понятна и очевидна. Но она, как и сочинение курсовой работы или придумывание диплома, стоит денег. Вы готовы их платить?

realweb, Вы ошиблись форумом. Те, кто посылают SMS "нелох" только для того, чтобы доказать, что его, как последнего лоха развели на деньги находятся по другому URI.


Последний раз редактировалось Акела 15 Сентябрь 2005, 04:19:18, всего редактировалось 1 раз.
realweb
новый человек
0
Сообщения: 19
Зарегистрирован: 15.07.05
Сообщение Добавлено: 15 Сентябрь 2005, 07:55:31 

Акела писал(а):
1) Не Вам решать кто, что и где будет постить в этом форуме. И это к счастью.
2) Не Вам обвинять во флуде кого либо из постоянных участников форума в котрый Вы зашли как гость. Пока что флудите лично Вы.
3) Услуга, которую Вы ищите здесь, вполне понятна и очевидна. Но она, как и сочинение курсовой работы или придумывание диплома, стоит денег. Вы готовы их платить?



Акела, вы опять флудите? Советую перечитать правила http://deforum.ru/rules.php , и в частности п.п. 3 , флуд в явном виде
COLT , на форуме запрещены посты из одних смайликов
fStrange Муж.
соучастник
10
Сообщения: 900
Зарегистрирован: 25.07.05
Откуда: Ростов-на-Дону
Сообщение Добавлено: 15 Сентябрь 2005, 09:10:05 
:eek: вот оно, рождение модератора
gregzem Муж.
новый человек
2
Сообщения: 252
Зарегистрирован: 29.04.03
Сообщение Добавлено: 15 Сентябрь 2005, 10:41:33 

fStrange писал(а):
:eek: вот оно, рождение модератора



Мертворожденный модератор
gregzem Муж.
новый человек
2
Сообщения: 252
Зарегистрирован: 29.04.03
Сообщение Добавлено: 15 Сентябрь 2005, 10:47:15 

Акела писал(а):
gregzem, я полностью поддерживаю Ваш достойный сарказм и презрение в адрес побирушек и собирателей пустых бутылок :beer:


"Жизнь идет, а развлекаться надо".

realweb, чтобы получить умные ответы - задавайте умные вопросы. В этом форуме есть замечательная подборка "ак[у|е]л пера".Отгрызут при первой возможности палец по самый локоть.

Удачи!
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 15 Сентябрь 2005, 10:55:23 
realweb, явных ляпов нет. Код стандартен, местами, помоему, даже потырен. Углублённо копаться в твоём килобайтном "выс@ре" желание почему то отсутствует ;)

_________________
можно на ТЫ.
mymind Муж.
новый человек
0
Сообщения: 37
Зарегистрирован: 03.08.05
Откуда: Ангарск
Сообщение Добавлено: 15 Сентябрь 2005, 11:02:48 
Всё хорошо. Ответ устроил ?

_________________
Не стой под стрелой
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 15 Сентябрь 2005, 11:09:03 
оффтопик:
fStrange, кого родили?

realweb, Вы пришли на форум учить его постоянных участников правилам общения на форуме? Или за тем, чтобы работающий и, как сказал bE(o0L, возможно потыреный код разбирали по строчкам и учили Вас стилистике задаром?
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 15 Сентябрь 2005, 11:56:04 
оффтопик:
realweb, это вам на форум альтруистов, а не сюда. Здесь эту дурь вышибаюст с первого дня :laugh:

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
realweb
новый человек
0
Сообщения: 19
Зарегистрирован: 15.07.05
Сообщение Добавлено: 15 Сентябрь 2005, 14:59:55 

bE(o0L писал(а):
realweb, явных ляпов нет. Код стандартен, местами, помоему, даже потырен. Углублённо копаться в твоём килобайтном "выс@ре" желание почему то отсутствует ;)



Спасибо за ответ.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 16 Сентябрь 2005, 06:29:43 
Тема закрыта. Причина - "Ввиду окончания конструктивной части дискуссии".

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 25 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100