1. Список говнокодов пользователя nicolay-punin

    Всего: 8

  2. PHP / Говнокод #4036

    +158

    1. 1
    2. 2
    <?php 
    $delete_status = substr ($this->getAdapter()->quote( $delete_status), 1, -1);

    $delete_status - это строка... причем константа.
    в итоге, по ходу задачи это строка ничего не делает...

    nicolay-punin, 20 Августа 2010

    Комментарии (2)
  3. PHP / Говнокод #4013

    +158

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    <?php
            switch (1)
            {
                case isset($args[2]) && isset($args[3]):
                    if ( !$this->xml_client->query('service.get_stat',$args[0],$args[1],$args[2],$args[3]) )
                    {
                        $this->log(ERR_QUERY);
                        return false;
                    }
                    break;
    
    
                case isset($args[2]) && !isset($args[3]):
                    if ( !$this->xml_client->query('service.get_stat',$args[0],$args[1],$args[2]) )
                    {
                        $this->log(ERR_QUERY);
                        return false;
                    }
                    break;
    
                default:
                    if ( !$this->xml_client->query('service.get_stat',$args[0],$args[1]) )
                    {
                        $this->log(ERR_QUERY);
                        return false;
                    }
                    break;
    
            }
            return $this->xml_client->getResponse();
    
    ?>

    кусок вызова функции с переменным числом параметров...
    и самое главное это штука уже давно-давно работает!....

    nicolay-punin, 17 Августа 2010

    Комментарии (0)
  4. PHP / Говнокод #2761

    +160.4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    <?php
     $ok = true;
            $argsbackup = $args;
            for ($i = 0, $j = count($args); $i < $j; $i++) {
                $arg = array_shift($args);
                $type = array_shift($signature);
                switch ($type) {
                    case 'int':
                    case 'i4':
                        if (is_array($arg) || !is_int($arg)) {
                            $ok = false;
                        }
                        break;
                    case 'base64':
                    case 'string':
                        if (!is_string($arg)) {
                            $ok = false;
                        }
                        break;
                    case 'boolean':
                        if ($arg !== false && $arg !== true) {
                            $ok = false;
                        }
                        break;
                    case 'float':
                    case 'double':
                        if (!is_float($arg)) {
                            $ok = false;
                        }
                        break;
                    case 'date':
                    case 'dateTime.iso8601':
                        if (!is_a($arg, 'IXR_Date')) {
                            $ok = false;
                        }
                        break;
                }
                if (!$ok) {
                    return new IXR_Error(-32602, 'server error. invalid method parameters');
                }
            }

    предыстория. IRX_Library - XML-RPC server

    вот так оно проверяет параметры к функции. так жестко по массиву ходить не стоит... (((

    nicolay-punin, 11 Марта 2010

    Комментарии (8)
  5. PHP / Говнокод #2347

    +155.9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <?php 
    
    $Fnm = $mosConfig_absolute_path .'/components/'.$option.'/cron.php';
    $inF = fopen($Fnm,"w");
    fwrite($inF,'<?php $last_cron_date='.$last_cron_date.';?>');
    fclose($inF);

    всеми любимая джумла... а точнее один из её компонентов... строка 1846-ая...

    почему собственно гадость:
    1. а если нету доступа на запись...
    2. не безопасно
    3. если в файле что-нибудь будет не так - обвалится весь сайт, потому как ошибко php
    4. я настороженно отношусь к файлам по 2246 - строк ... уж больно много всего...

    nicolay-punin, 29 Декабря 2009

    Комментарии (9)
  6. PHP / Говнокод #2253

    +152.6

    1. 1
    2. 2
    3. 3
    <?php
       unset($_SESSION['ticket']); 
       $_SESSION['ticket'] = $ticket;

    масло маслянное... ну прям как в анекдоте про два джампа...

    nicolay-punin, 09 Декабря 2009

    Комментарии (9)
  7. PHP / Говнокод #2165

    +160.4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    <?php 
    // ...
    $vars = get_class_vars($class_name);
    		if(is_array($vars)) {
    			foreach($vars as $var => $val) {
    				eval('$this->' . $var . ' = \'' . $val . '\';');
    			}
    		}

    некакая UNI-CMS
    это не самое худшее. что я там нашел ... в общем мрак... (

    nicolay-punin, 22 Ноября 2009

    Комментарии (11)
  8. PHP / Говнокод #2093

    +159.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    <?php
    $file_name = 'http://www.****';
    //$html_string = @file_get_contents($file_name);
     ob_start();
     readfile($file_name);
     $html_string = ob_get_contents();
     ob_end_clean();
    ?>

    копаю проект, на котором идет загрузка данных из инета...
    хваталка там про жесть .... автор решил, что использовать одну функцию будет слишком просто ...
    хотя отчасти я его понимаю... скорее всего все жутко тормозило...
    сам в детстве так ошибался, если дергаешь из инета стандартными средствами что-нибудь, то там нельзя задать таймаут. и если тебя вдруг забанили, то вся дергалка виснет обычно минуты на полторы-две. А то, что мы тут видим - это танцы с бубном, а вдруг заработает... не люблю когда так делают :(
    PS: ну если @ в коде встречается - то автора можно сразу добивать чем-нибудь тяжелым... особенно сильно хотелось это сделать, когда убил часов 10 на поиск места, где происходит ошибка и почему выводится белый экран...

    nicolay-punin, 03 Ноября 2009

    Комментарии (32)
  9. PHP / Говнокод #2083

    +164.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <?php 
    // ...
    $content = join('',file("".$main_server."site/".$links_path.""));
     if (strlen($content) >= 20000)$content = 'Ошибка!';
    echo $content;
    ?>

    Самая убойная проверка на ошибки, которую я только видел. Из предыстории, есть один один супер проект, который раздает данные какого-либо рода.
    Данные выхватываются с неге по http, что мы собственно и видим, и выводятся.
    Основной проект написан так, что если друг URL не верен, то выдает var_dump отладочной информации. В связи с этим автор этого кода выдал афигенную проверку на ошибки.
    Достойно индусов :D
    про загрузку я вообще молчу, это же просто изврат ( в общем, решение жутко плохое, но на половине клиентов оно крутится до сих пор, и исправлять это никто не собирается :(

    nicolay-punin, 01 Ноября 2009

    Комментарии (4)