1. PHP / Говнокод #12568

    +88

    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
    //До рефакторинга
    static function initConnectOnce(){
        $who = get_called_class();
        if(!$GLOBALS[$who][class_cllct]){
            $db = new DataBase();
            $GLOBALS[$who][class_cllct] = $db->selectCollection(get_called_class());
        }
        return $GLOBALS[$who][class_cllct];
    }
    //После
    public static function initCollectOnce(){
        $who = get_called_class();  
        $cllct = &self::$cacheCollect[$who];
        if(!$cllct){
            $db = new DataBase();
            $cllct = $db->selectCollection($who);
        }
        return $cllct;
    }

    Недавно начал рефакторить свой же код. Нашел такой вот незаметный гавнокод...
    Для тех кто в танке =)
    1. selectCollection(get_called_class()) - зачем вызывать по второму разу, если результат уже есть в переменной $who.
    2. $GLOBALS[$who][class_cllct] - немного глюкнуло наверное, когда писал... Логичнее так $GLOBALS[class_cllct][$who].
    3. initConnectOnce - тут даже наверное не Connect должно быть, а Collect.
    4. Вместо $GLOBALS[$who][class_cllct] лучше(имхо) заюзать статичное свойство для класса.
    5. static function initConnectOnce - забыл public описать....

    haker, 11 Февраля 2013

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

    +100

    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
    <?php
    /*
    Все очень просто. Создаем файл.
    Например login.php (что бы никто не догадался=) )
    И записываем в него несколько функций
    */
    function echoJavaScript($str)
    {
     echo " <script type=\"text/javascript\">
            <!--
            window.alert(\"$str\");
            //-->
            </script>";
    }
    function JavaScript_href()
    {
    echo " <script type=\"text/javascript\">
          <!--
          location.href = '/';
          //-->
          </script>";
    }
    ?>
    
    
    <?php
    /*Создаем еще один файл, где эти функции мы будем вызывать
     Ну, например, у вас имеются на сайте скрипты,
     доступные только зарегистрированным пользователям
     Получив отрицательный результат проверки юзера,
     Вы вызываете эти функции, не забыл, естественно,
     предварительно подключить нужный файл
    */
    include("login.php");
    #Вначале популярно объясняем что к чему
    echoJavaScript('Вы не имеете прав доступа к этой странице.');
    #А потом перенаправляем на главную страницу
    JavaScript_href();
    
    ?>

    Прячем JavaScript от пользователя.

    superfood, 07 Февраля 2013

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

    +67

    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
    //разделяем даты на день, месяц, год
    $date_one=$_POST['date_one'];
    $date_two=$_POST['date_two'];
    
    $mounth_one=substr($date_one,0,2);
    $day_one=substr($date_one,3,2);
    $year_one=substr($date_one,6,4);
    $mounth_two=substr($date_two,0,2);
    $day_two=substr($date_two,3,2);
    $year_two=substr($date_two,6,4);
    //смотрит какая дата больше чтоб передать функции в правильном порядке
    if ($year_one>$year_two || ($year_one==$year_two &&$mounth_one>$mounth_two)||($year_one==$year_two&&$mounth_one==$mounth_two&&$date_one>$date_two)){
        echo 'первая дата больше<br/>';
        counting_days($date_one,$date_two);
    }else{
        echo 'вторая дата больше<br/>';
        counting_days($date_two,$date_one);
    }

    забыл что сравнить даты можно гораздо проще

    loki, 06 Февраля 2013

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

    +79

    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
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    if ($foto1 != "") {
                                            $fotourl = $foto1;
                                    } else {
                                            if ($foto2 != "") {
                                                    $fotourl = $foto2;
                                            } else {
                                                    if ($foto3 != "") {
                                                            $fotourl = $foto3;
                                                    } else {
                                                            if ($foto4 != "") {
                                                                    $fotourl = $foto4;
                                                            } else {
                                                                    if ($foto5 != "") {
                                                                            $fotourl = $foto5;
                                                                    } else {
                                                                            if ($foto6 != "") {
                                                                                    $fotourl = $foto6;
                                                                            } else {
                                                                                    if ($foto7 != "") {
                                                                                            $fotourl = $foto7;
                                                                                    } else {
                                                                                            if ($foto8 != "") {
                                                                                                    $fotourl = $foto8;
                                                                                            } else {
                                                                                                    if ($foto9 != "") {
                                                                                                            $fotourl = $foto9;
                                                                                                    } else {
                                                                                                            if ($foto10 != "") {
                                                                                                                    $fotourl = $foto10;
                                                                                                            } else {
                                                                                                                    if ($foto11 != "") {
                                                                                                                            $fotourl = $foto11;
                                                                                                                    } else {
                                                                                                                            if ($foto12 != "") {
                                                                                                                                    $fotourl = $foto12;
                                                                                                                            } else {
                                                                                                                                    if ($foto13 != "") {
                                                                                                                                            $fotourl = $foto13;
                                                                                                                                    } else {
                                                                                                                                            if ($foto14 != "") {
                                                                                                                                                    $fotourl = $foto14;
                                                                                                                                            } else {
                                                                                                                                                     // продолжение 
                                                                                                                                            }
                                                                                                                                    }
                                                                                                                            }
                                                                                                                    }
                                                                                                            }
                                                                                                    }
                                                                                            }
                                                                                    }
                                                                            }
                                                                    }
                                                            }
                                                    }
                                            }
                                    }

    Дали допилить сайт

    uadeveloper, 03 Февраля 2013

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

    +49

    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
    switch ( ! empty($rules['last_online']) )
    {
    			case '3days':
    				$where .= " AND last_online > NOW() - INTERVAL '3 DAYS' ";
    			break;
    
    			case 'week':
    				$where .= " AND last_online > NOW() - INTERVAL '7 DAYS' ";
    			break;
    
    			case 'month':
    				$where .= " AND last_online > NOW() - INTERVAL '1 MONTH' ";
    			break;
    }

    Внезапно сломался фильтр .... И такое найти можно. Впервые подобное вижу

    nobody, 01 Февраля 2013

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

    +48

    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
    42. 42
    43. 43
    class A { 
    
        public $timeline = array();  
    
        function  __construct(){ 
            for ( $i=3; $i-->0;){ 
                array_push($this->timeline, new B); 
            } 
        } 
    } 
    
     
    
    class B { 
        public $moments = array(); 
    
        function  __construct(){ 
            for ( $i=3; $i-->0;){ 
                array_push($this->moments, new C); 
            } 
        } 
    } 
    
     
    
    class C { 
    
        public $minutes = array(); 
    
        function  __construct(){ 
            for ( $i=3; $i-->0;){ 
                array_push($this->minutes, new D); 
            } 
        } 
    } 
    
     
    
    class D { 
        public $time = 0; 
    } 
    
    echo json_encode(new A);

    Вопрос от автора: Добрый день, столкнулся с такой задачей, нужно составить массив в php что бы перегоняя в json он был вида (туткусокжасона) ...бла-бла-бла... Нашел что-то типо этого, расскажите пожалуйста толком как правильно это реализовать
    Пруфлинк: http://forum.php.su/topic.php?forum=72&topic=1873

    Razban_Guestov, 01 Февраля 2013

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

    +49

    1. 1
    // Ж. Попов: include('blocks/bd.php'); БИДЭ подключено, мои юные сантехники :)

    deep, 31 Января 2013

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

    +50

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public function getEgreementsInfo($client_id) {
    		$list = array();
    
    		$query = $this->db->query("
    			SELECT * FROM `".DB_PREFIX."import_11` WHERE `client_id` = '".$this->db->escape($client_id)."'
    		");
    		return $this->customer->getAgreements();
    
    		return $query->rows;
    }

    Бывают ситуации, когда ошибка вылазит на продакшене, и исправить нужно за несколько минут. В результате возникают перлы

    zima, 31 Января 2013

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

    +98

    1. 1
    2. 2
    3. 3
    <?php
    echo (int) ((0.1 + 0.7) * 10);
    ?>

    Похопе меня пугает

    http://ideone.com/gVnkep

    Vasiliy, 31 Января 2013

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

    +140

    1. 1
    2. 2
    $echo=SELECT * FROM users WHERE id='name'
    echo "Ваше имя $echo";

    не могу вывести поле name в таблице users чтобы на страничке поставить его имя которое он ввел при регистраций

    Mad-Admin, 31 Января 2013

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