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

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    function get_rand_word () {
        $list = explode(" ", file_get_contents('http://www.gnu.org/licenses/gpl-3.0.txt'));
            $cwords = rand (2,5);
            $string = '';
            $r = 0;
            while($r++<$cwords) {
                    $string .= preg_replace('~[^a-z]+~', '', strtolower($list[rand(0, (count($list)-1))]));
            }
            return $string;
    }

    Одним прекрасным утром поступила жалоба, что сервер ддосят. Канал на 100Mb был полностью забит входящим трафиком. Ддосили с www.gnu.org...

    deadmorose, 18 Июля 2017

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

    +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
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    // Consumer
    $channel->run(
        new GracefulHandler(
            new LoggingHandler(
                new AcknowledgingHandler(
                    new JsonDecodingHandler(
                        new ValidatingHandler(
                            new DbalReconnectingHandler(
                                new AmqpPublishingHandler(
                                    new Mailman($channel, $exchangeName),
                                    new PrintNodePrinterPool(
                                        new PluginClient(
                                            new HttpClient(),
                                            [new AuthenticationPlugin(new BasicAuth($key, ''))]
                                        ),
                                        MessageFactoryDiscovery::find()
                                    ),
                                    new DbalBatchFactory(
                                        $connection,
                                        new S3BatchLabelFactory(
                                            new S3Client(
                                                [
                                                    'version' => 'latest',
                                                    'region' => $region,
                                                    'credentials' => [
                                                        'key' => $key,
                                                        'secret' => $secret,
                                                    ],
                                                ]
                                            ),
                                            $bucket,
                                            $logger
                                        ),
                                        new LabelFactory(
                                            new GuzzleClient(),
                                            new PickTicketFactory($template, $layouts)
                                        )
                                    )
                                ),
                                $connection
                            ),
                            __DIR__ . '/schema.json'
                        )
                    )
                ),
                $logger
            )
        ),
        $name
    );

    Пример consumer на PHP для RabbitMQ (Yegor OOP style)

    belka3000, 14 Июля 2017

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

    0

    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
    public function notLessThan($attribute_name, $params)
        {
            $attributes = [
                [
                    'error' => 0,
                    'name' => 'ingredient_1st',
                    'this' => $this->ingredient_1st
                ],
                [
                    'error' => 0,
                    'name' => 'ingredient_2nd',
                    'this' => $this->ingredient_2nd,
                ],
                [
                    'error' => 0,
                    'name' => 'ingredient_3rd',
                    'this' => $this->ingredient_3rd
                ],
                [
                    'error' => 0,
                    'name' => 'ingredient_4th',
                    'this' => $this->ingredient_4th
                ],
                [
                    'error' => 0,
                    'name' => 'ingredient_5th',
                    'this' => $this->ingredient_5th
                ],
            ];
            $this->counter = 0;
            foreach ($attributes as $key => &$attribute) { // change array element
                if (empty($attribute['this']) && $this->counter < 2) {
                    $attribute['error'] = 1;
                } else {
                    $this->counter++;
                }
            }
            if ($this->counter < 2) {
                foreach ($attributes as $key => $attribute) {
                    if ($attribute['error']) {
                        $this->addError($attribute['name'], 'Должно быть заполнено не менее двух полей.');
                    }
    
                }
                return false;
            }
            return true;
        }

    Валидатор проверки заполнения нужного количества полей

    qstd, 13 Июля 2017

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

    +1

    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 (!empty($tickets)) {
        if (count($tickets)) {
    
            $c_start = strtotime($convetion_details['start']);
            $c_end   = strtotime($convetion_details['end']);
    
            $i = 0;
    
            while ($c_start <= $c_end) {
                if (is_int($i / 4) && $i > 0) $convetion_days_html .= '</tr><tr>';
                $convetion_days_html .= '<td>' . date('d.m', $c_start) . ' ' . __t($days_of_week[date('w', $c_start)]) . ' &nbsp;&nbsp;&nbsp;&nbsp;<img src="' . str_replace('https', 'http', TEMPLATE_WWWPATH) . '/images/checkbox.png"/></td>';
                $c_start             = strtotime('+1 day', $c_start);
                $i++;
            }
    //...

    код из легаси 2007 года от индусов

    seyfer, 11 Июля 2017

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

    +2

    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
    /**
     * "Smart" Escape String
     *
     * Escapes data based on type
     * Sets boolean and null types
     */
    function escape($str)
    {
        if (is_string($str))
        {
            $str = "'".$this->escape_str($str)."'";
        }
        elseif (is_bool($str))
        {
            $str = ($str === FALSE) ? 0 : 1;
        }
        elseif (is_null($str))
        {
            $str = 'NULL';
        }
    
        return $str;
    }

    CodeIgniter 2, "Smart"

    Fike, 11 Июля 2017

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    <?php
    $_POST['sum'] = (float)number_format(preg_replace('~[^0-9.,]~ui', '',$_POST['sum']), 2);
    
    ?>

    Получили float

    Caarlo, 10 Июля 2017

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

    0

    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
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    /* сделать логику переводчика из 10 системы в 2, 8 и 16, что бы на вход было десятичное число, 
    а на выходе двоичное, восьмеричное и шеснадцатиричное представление */
    
    // для проверки, функциями php
    $i=378;
    echo "$i в двоичной системе = " . base_convert ($i, 10, 2) . PHP_EOL;
    echo "$i в восьмеричной системе = " . base_convert ($i, 10, 8) . PHP_EOL;
    echo "$i в шестнадцатиричной системе = " . base_convert ($i, 10, 16) . PHP_EOL;
    unset ($i);
    
    // десятичное в двоичное, используя алгоритм http://vestikinc.narod.ru/AB/dec_bin_tr.htm
    $a = 378;
    $b = ''; // пустая строковая переменная
        while ($a != 0) {
            $b = ($a % 2) . $b; //добавляем в начало остаток от деления, как младший бит двоичного числа
            $a = (int)($a / 2); //принимаем целую часть частного за новое делимое
        }
    echo $b . PHP_EOL;
    
    unset ($a, $b);
    
    // десятичное в восьмеричное, используя алгоритм http://vestikinc.narod.ru/AB/dec_oct_tr.htm
    $a = 378;
    $b = ''; // пустая строковая переменная
        while ($a != 0 & $a % 8 < 8) {
            $b = ($a % 8) . $b; //добавляем в начало остаток от деления, как младший бит двоичного числа
            $a = (int)($a / 8); //принимаем целую часть частного за новое делимое
        }
    echo $b . PHP_EOL;
    unset ($a, $b);
    
    // десятичное в шестнадцатеричное, через двоичное
    $a = 378;
    $b = ''; // пустая строковая переменная
        while ($a != 0) {
            $b = ($a % 2) . $b; //добавляем в начало остаток от деления, как младший бит двоичного числа
            $a = (int)($a / 2); //принимаем целую часть частного за новое делимое
    }
    $count = strlen($b);
        while(($count % 4) != 0) { // если количество символов не кратно 4
            $b='0'. $b;            // то добавляем в начало 0
            $count = strlen($b);   // снова вычисляем длину
    }
        $c = '';                                     // пустая строковая переменная
        for($d = 0; $d < $count; $d = $d + 4)        //пока счётчик меньше количества символов, прибавляем 4
        {
            $c = $c . strtr(substr($b, $d,4), //добавляем к $c замену 4-х символов $b с позиции $d
                array('0000'=>'0',
                      '0001'=>'1',
                      '0010'=>'2',
                      '0011'=>'3',
                      '0100'=>'4',
                      '0101'=>'5',
                      '0110'=>'6',
                      '0111'=>'7',
                      '1000'=>'8',
                      '1001'=>'9',
                      '1010'=>'A',
                      '1011'=>'B',
                      '1100'=>'C',
                      '1101'=>'D',
                      '1110'=>'E',
                      '1111'=>'F'));
        }
    echo $c . PHP_EOL;
    
    unset ($a, $b, $c, $d);
    
    // десятичное в шестнадцатеричное, используя алгоритм http://vestikinc.narod.ru/AB/dec_hex_tr.htm
    $a = 378;
    $b = ''; // пустая строковая переменная
    while ($a != 0) {
        if ($a % 16 > 0 & $a % 16 < 10):
            $b = ($a % 16) . $b;
        elseif ($a % 16 == 10):
            $b = 'A' . $b;
        elseif ($a % 16 == 11):
            $b = 'B' . $b;
        elseif ($a % 16 == 12):
            $b = 'C' . $b;
        elseif ($a % 16 == 13):
            $b = 'D' . $b;
        elseif ($a % 16 == 14):
            $b = 'E' . $b;
        elseif ($a % 16 == 15):
            $b = 'F' . $b;
        endif;
        $a = (int)($a / 16);     //принимаем целую часть частного за новое делимое
    }
    echo $b . PHP_EOL;

    логика переводчика из 10 системы исчисления в 2, 8 и 16, чтобы на входе было десятичное число, а на выходе двоичное, восьмеричное и шеснадцатиричное представление

    прошу сильно гавном не бросать - на старости лет, впервые в жизни учу программирование, месяц всего-то как заглянул за экран

    iconoclastov, 09 Июля 2017

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function isDateGreaterOrEqualNow($d)
    {
        if (!$d) return false;
        $t = getdate();
        $t = mktime(0, 0, 0, $t['mon'], $t['mday'], $t['year']);
        return $d >= $t;
    }

    Космическое сравнение дат

    SeniorShaurman, 07 Июля 2017

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

    +2

    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
    $value = $grandTotal  - $tax;
            $total_name = $this->__('Grandtotal_excl_tax')." (".$this->__('excl. tax').")";
            $row = '<div class="columns xsmall-6 small-6">';
            $row .= $total_name;
            $row .= '</div><div class="columns xsmall-6 small-6 align-right">'.$this->helper('checkout')->formatPrice($value).'</div>';
    
            $totals["grand_total_excl_tax"] = $row;
    
    
            //$orderedTotals = Mage::getStoreConfig('onestepcheckout/general/summary_totals');
            $orderedTotals =  "subtotal,aw_giftcard_duty,aw_giftcard_duty_discount,shipping,cashondelivery,shipping_discount,discount,aw_giftcard,grand_total_excl_tax,tax,grand_total";
            $orderedTotals = explode(',', $orderedTotals);
            foreach($orderedTotals as $total) {
                $total = trim($total);
                if (isset($totals[$total])) {
                    echo $totals[$total];
                }
            }
            ?>
        </div>

    Разгребаем проект на Magento доставшийся в наследство. Умеете ли вы готовить Array() так как готовят его в строках 11-12 ?

    #littleitaly

    mrdink, 06 Июля 2017

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

    0

    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
    <!DOCTYPE html>
    <html>
    <head>
    
    <?php
    
    $filename = 'mes.txt';
    $count = "count.txt";
    $count_file = fopen($count, "r");
    $handle = fopen($filename, "rb");
    date_default_timezone_set('Europe/Moscow');
    $contents = file_get_contents($filename);
    $contents2=nl2br($contents);
    $password=htmlspecialchars($_POST["pass"]);
    if($password=='dfhsdhf' || $password=='eeeeeer')
    	{
    
    	}
    else
    	{
    		echo '403';
    		exit;
    	}
    if( isset( $_POST['obn'] ) )
    	{
    		fclose($count_file);
    		$count_file = fopen($count, "w");
    	 	fwrite($count_file, '0');
    		echo "Обнулено"; 
    		$date = date("Y-m-d H:i:s");
    		$date_file = fopen("date.txt", "w");
    		fwrite($date_file, "$date");
    	}
    	
    ?>
    	<title>Admin panel</title>
    
    
    </head>
    <body>
    	<h1>Начиная с <div id=date><?php echo file_get_contents("date.txt") ?></div> сайте было <div id=count><?php echo file_get_contents("count.txt") ?></div> людей</h1>
    	<p><?php if ($password == 'dfhsdhf')
    		echo "$contents2";
    	?>
    	</p>
    	<br>
    	<?php if ($password != 'dfhsdhf')
    			exit;
    			?>
    	<form method="POST">
    	<p>Введите код подтверждения</p>
    	<input type="password" name="pass">
        <input type="submit" name="obn" value="Обнулить" />
    	</form>
    	</body>
    </html>

    Лучшая админка на php

    Milton, 25 Июня 2017

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