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

    +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
    $rand = rand(1,100);
    if (($rand => 1) && ($rand <= 50)) {
    include 'код баннера 1';
    }
    elseif (($rand => 51) && ($rand <= 80)) {
    include 'код баннера 2';
    }
    else {
    include 'код баннера 3';
    }
    
    50% - баннер 1, 30% - баннер 2, остальное (20%) - баннер 3.

    Хотели сделать "ротацию с весом" для X баннеров :)

    SVP, 18 Сентября 2014

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    if ($qproizv_r->s > 0 && $qpriem_n > 0) {
        if ($qproizv_r->s >= $row->Kol) {
            $Status = 6;
        }
    } else {
        if ($qpriem_n > 0) {
            $Status = 6;
        }
    }

    Так и живем.

    Khvorostin, 18 Сентября 2014

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

    +155

    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
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    <?php
    
    /**
     * Get category tree.
     * 
     * @param db $db
     * @return array
     */
    function getCategoryTree ($db) {
    	$query = $db->query('SELECT * FROM dle_category ORDER BY posi');
    	
    	if ($query->num_rows <= 0) {
    		return FALSE;
    	}
    	
    	$categories = $query->fetch_all(MYSQLI_ASSOC);
    	
    	$tree = array();
    	
    	foreach ($categories as $cat) {
    		if ($cat['parentid'] == '0') {
    			$tree[$cat['id']] = $cat;
    		}
    		else {
    			$tree[$cat['parentid']]['subcategories'][] = $cat;
    		}
    	}
    	
    	return $tree;
    }
    
    /**
     * Display categories.
     * Sorry for my french 'echo'.
     * 
     * @param array $category
     */
    function displayCategory ($category) {
    	$html = '';
    	
    	foreach ($category as $cat) {
    		$html .= '<li class="lonely "><a href="/">' . $cat['name'] . '</a>';
    		
    		if ($cat['subcategories']) {
    			$html .= '<span class="accordion"></span><ul>';
    			$html .= displayCategory ($cat['subcategories']);
    			$html .= '</ul>';
    		}
    		
    		$html .= '</li>';
    	}
    	
    	return $html;
    }
    
    // Getting categories
    $categories = getCategoryTree($db);
    
    if ($categories) {
    	echo displayCategory ($categories);
    }
    else {
    	echo '<li>Нету категорий</li>';
    }

    Мой говно модуль для DLE для отображения дерева категорий в меню.
    Почему DLE разработчики не могли это из коробки сделать? И почему там куча говнокода внутри? (на Англ. комментарии потому что привык)

    volter9, 17 Сентября 2014

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

    +154

    1. 1
    $_params[] = sTools::convert2cp1251(preg_replace('|\s+|', ' ', str_replace('"', '""', htmlspecialchars_decode($_param['title'])))) . ':' . sTools::convert2cp1251(preg_replace('|\s+|', ' ', str_replace('"', '""', htmlspecialchars_decode($_param['unit'])))) . '|' . implode(',', $_param['value']);

    sautchenkov, 16 Сентября 2014

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

    +155

    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
    if($numr>1){
        $i=0;
        while($row=mysql_fetch_object($q)){++$i;
    
            if($num==$i){
                return $row->id;
                break;
            }
        }
    }elseif($numr==1){
        $row=mysql_fetch_object($q);
        return $row->id;
    }else{
        return 0;
    }

    А на случай, если return() не сработает, у нас есть break

    Khvorostin, 16 Сентября 2014

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

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $c=count($arr1);
    for($i=0;$i<$c;$i++){
    	$key=key($arr1);
    	ksort($arr1[$key]);
    	next($arr1);
    }

    foreach() чем-то не угодил

    Khvorostin, 16 Сентября 2014

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <?php
    
    $data = file_get_contents("/path/to/photo.jpg"); // Read the file's contents
    $name = 'myphoto.jpg';
    
    force_download($name, $data);

    Я знаю конечно что это не говнокод, но последствия будут ужасными если не передать сразу же в функцию данные (т.к. PHP будет копировать содержимое дважды), представьте себе файл в 2МБ и много запросов, сервер капут в два раза быстрее.
    - https://ellislab.com/codeigniter/user-guide/helpers/download_helper.html

    volter9, 15 Сентября 2014

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

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $data = $DB->...
    reset($data);
    while (list(, $row) = each($data)) {
        // do somethig with $row
    }

    Я не понимаю, почему просто не использовать foreach?!

    matasar, 13 Сентября 2014

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

    +166

    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
    <?php
    
    if($ssh->login($user_p,$pass_p,$ip_p,$port_p) ){
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(1);
            $ssh->exec_cmd('php /var/www/reinfo.php;');
            $ssh->disconnect();
     
    }

    Это файл /var/www/reinfo.php.
    Задача в кроне на выполнение этого файла:
    0,2,4,6,8,10,13,15,17,19,21,23,25,27,29, 31,33,35-36,38,40,42,44,46,48,50,52,54,56,58 * * * * php /var/www/reinfo.php

    Onotole, 11 Сентября 2014

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

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    public function getByAllParameters()
        {
            $fields = array_keys($this->getFields());
            unset($fields[0]);
            sort($fields);
            if($this->getByConditions(array('id_user', 'status', 'card_bin', 'card_suffix', 'id_card_type', 'card_token'))){
                $processing = new Processing();
                $processing->id = $this->id_processing;
                return $processing->getByPrimary() && $processing->enabled == 1;
            }
            return false;
        }

    dimkich, 11 Сентября 2014

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