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

    +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
    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
    $jsxss="onabort,oncanplay,oncanplaythrough,ondurationchange,onemptied,onended,onerror,onloadeddata,onloadedmetadata,onloadstart,onpause,onplay,onplaying,onprogress,onratechange,onseeked,onseeking,onstalled,onsuspend,ontimeupdate,onvolumechange,onwaiting,oncopy,oncut,onpaste,ondrag,ondragend,ondragenter,ondragleave,ondragover,ondragstart,ondrop,onblur,onfocus,onfocusin,onfocusout,onchange,oninput,oninvalid,onreset,onsearch,onselect,onsubmit,onabort,onbeforeunload,onerror,onhashchange,onload,onpageshow,onpagehide,onresize,onscroll,onunload,onkeydown,onkeypress,onkeyup,altKey,ctrlKey,shiftKey,metaKey,key,keyCode,which,charCode,location,onclick,ondblclick,oncontextmenu,onmouseover,onmouseenter,onmouseout,onmouseleave,onmouseup,onmousemove,onwheel,altKey,ctrlKey,shiftKey,metaKey,button,buttons,which,clientX,clientY,detail,relatedTarget,screenX,screenY,deltaX,deltaY,deltaZ,deltaMode,animationstart,animationend,animationiteration,animationName,elapsedTime,propertyName,elapsedTime,transitionend,onerror,onmessage,onopen,ononline,onoffline,onstorage,onshow,ontoggle,onpopstate,ontouchstart,ontouchmove,ontouchend,ontouchcancel,persisted,javascript";
    $jsxss = explode(",",$jsxss);
    foreach($_GET as $k=>$v)
    {
    	if(is_array($v))
    	{
    		foreach($v as $Kk=>$Vv)
    		{
    			$Vv = preg_replace ( "'<script[^>]*?>.*?</script>'si", "", $Vv );
    			$Vv = str_replace($jsxss,"",$Vv);
    			$Vv = str_replace (array("*","\\"), "", $Vv );
    			$Vv = strip_tags($Vv);
    			$Vv = htmlentities($Vv, ENT_QUOTES, "UTF-8");
    			$Vv = htmlspecialchars($Vv, ENT_QUOTES);
    			$_GET[$k][$Kk] = $Vv;
    		}
    	}
    	ELSE
    	{
    		//Сначала удаляем любые скрипты для защиты от xss-атак
    		$v = preg_replace ( "'<script[^>]*?>.*?</script>'si", "", $v );
    		//Вырезаем все известные javascript события для защиты от xss-атак
    		$v = str_replace($jsxss,"",$v);
    		//Удаляем экранирование для защиты от SQL-инъекций
    		$v = str_replace (array("*","\\"), "", $v );
    		//Экранируем специальные символы в строках для использования в выражениях SQL
    		$v = mysql_real_escape_string( $v );
    		//Удаляем другие лишние теги.	
    		$v = strip_tags($v);
    		//Преобразуем все возможные символы в соответствующие HTML-сущности
    		$v = htmlentities($v, ENT_QUOTES, "UTF-8");
    		$v = htmlspecialchars($v, ENT_QUOTES);
    		//Перезаписываем GET массив
    		$_GET[$k] = $v;
    	}
    	
    }

    [colo=blue]https://habr.com/ru/post/470193/[/color]

    Интересно, все эти люди сами до всего этого доходят, или их кто-то этому учит?

    gpyrou_nemyx, 05 Октября 2019

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    https://ru.wikipedia.org/wiki/Деление_с_остатком#В_программировании
    
    Смотрим табличку справа.
    
    Именно поэтому я против PHP

    OlegUP, 01 Октября 2019

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

    +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
    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
    <?php
    $fin = fopen($argv[1], 'r');
    if($fin === false) die();
    
    $fout = fopen('dump.csv', 'w');
    if($fout === false) die();
    
    while(!feof($fin)) {
        $rawline = fgets($fin);
        if(!preg_match('#\[+(.*)\]+,?#', $rawline, $matches)) continue;
        $fields = str_getcsv($matches[1]);
        $parts = explode(')', $fields[0]);
        if(count($parts) < 2) continue;
        list($host, $path) = $parts;
        $domains = explode(',', $host);
        $dirs    = explode('/', $path);
        if($domains[0] === 'ru' && $domains[1] === 'mail') {
            $email = $dirs[2] . '@' . $dirs[1] . '.ru';
            $hash = md5($email);
            fputcsv($fout, array($hash, $email));
        } else if($domains[0] === 'ru' && $domains[1] === 'rambler' && $dirs[1] = 'users') {
            if(strpos($dirs[2], '@') === false) {
                $email = $dirs[2] . '@rambler.ru';
            } else {
                $email = $dirs[2];
            }
            $hash = md5($email);
            fputcsv($fout, array($hash, $email));
        } else if($domains[0] === 'ru' && $domains[1] === 'ya') {
            $email = $domains[2] . '@yandex.ru';
            $hash = md5($email);
            fputcsv($fout, array($hash, $email));
            $email = $domains[2] . '@yandex.by';
            $hash = md5($email);
            fputcsv($fout, array($hash, $email));
            $email = $domains[2] . '@yandex.ua';
            $hash = md5($email);
            fputcsv($fout, array($hash, $email));
            $email = $domains[2] . '@yandex.kz';
            $hash = md5($email);
            fputcsv($fout, array($hash, $email));
            $email = $domains[2] . '@yandex.com';
            $hash = md5($email);
            fputcsv($fout, array($hash, $email));
            $email = $domains[2] . '@ya.ru';
            $hash = md5($email);
            fputcsv($fout, array($hash, $email));
        } else if($domains[0] === 'ru' && $domains[1] === 'yandex' && $dirs[1] = 'users') {
            $email = $dirs[2] . '@yandex.ru';
            $hash = md5($email);
            fputcsv($fout, array($hash, $email));
            $email = $dirs[2] . '@yandex.by';
            $hash = md5($email);
            fputcsv($fout, array($hash, $email));
            $email = $dirs[2] . '@yandex.ua';
            $hash = md5($email);
            fputcsv($fout, array($hash, $email));
            $email = $dirs[2] . '@yandex.kz';
            $hash = md5($email);
            fputcsv($fout, array($hash, $email));
            $email = $dirs[2] . '@yandex.com';
            $hash = md5($email);
            fputcsv($fout, array($hash, $email));
            $email = $dirs[2] . '@ya.ru';
            $hash = md5($email);
            fputcsv($fout, array($hash, $email));
        }
    }
    
    fclose($fout);
    fclose($fin);

    Генератор радужных таблиц для е-мейлов.

    Особенность программы в том, что «JSON» парсится как «CSV» в целях экономии оперативки.

    ropuJIJIa, 01 Октября 2019

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

    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
    function filterMenu(){
        global $keyboard, $settings;
        $filter_status_name = [ 1 => 'анонсировано', 2 => 'сейчас выходит', 3 => 'вышедшее' ];
        $filter_order_name = [ 1 => 'по рейтингу', 2 => 'по популярности', 3 => 'по алфавиту', 3 => 'по дате выхода' ];
        $filter_kind_name = [ 1 => 'TV Сериал', 2 => 'фильм' ];
        if( $settings['filter']['menu'] == 0 OR !isset($settings['filter']['menu']) ){
            keyboard( 'Включить фильтр ', 0, [ 't' => '3', 'm' => 1 ] );
        }else{
            keyboard( 'Выключить фильтр ', 0, [ 't' => '3', 'm' => 0 ] );
            switch ($settings['filter']['menu']) {
                case 1:
                    keyboard( 'Статус' . ((isset($settings['filter']['status']))?': '.$filter_status_name[$settings['filter']['status']]:''), 1, [ 't' => '3', 'm' => 2 ] );
                    keyboard( 'Сортировка' . ((isset($settings['filter']['order']))?': '.$filter_order_name[$settings['filter']['order']]:''), 1, [ 't' => '3', 'm' => 3 ] );
                    keyboard( 'Тип' . ((isset($settings['filter']['kind']))?': '.$filter_kind_name[$settings['filter']['kind']]:''), 2, [ 't' => '3', 'm' => 4 ] );
                    keyboard( 'Жанр', 2, [ 't' => '3', 'm' => 5 ] );
                break;
                case 2:
                    keyboard( 'Анонсировано', 11, [ 't' => '3', 'm' => 1, 'n' => 1, 's' => 1 ] );
                    keyboard( 'Сейчас выходит', 11, [ 't' => '3', 'm' => 1, 'n' => 1, 's' => 2 ] );
                    keyboard( 'Вышло', 12, [ 't' => '3', 'n' => 1, 's' => 3 ] );
                    keyboard( 'Не важно', 90, [ 't' => '3', 'm' => 1, 'n' => 1, 's' => 0 ] );
                break;
                case 3:
                    keyboard( 'По рейтингу', 11, [ 't' => '3', 'm' => 1, 'n' => 2, 's' => 1 ] );
                    keyboard( 'По популярности', 11, [ 't' => '3', 'm' => 1, 'n' => 2, 's' => 2 ] );
                    keyboard( 'По алфавиту', 12, [ 't' => '3', 'm' => 1, 'n' => 2, 's' => 3 ] );
                    keyboard( 'По дате выхода', 12, [ 't' => '3', 'm' => 1, 'n' => 2, 's' => 4 ] );
                break;
                
                case 4:
                    keyboard( 'TV Сериал', 11, [ 't' => '3', 'm' => 1, 'n' => 3, 's' => 1 ] );
                    keyboard( 'Фильм', 11, [ 't' => '3', 'm' => 1, 'n' => 3, 's' => 2 ] );
                    keyboard( 'Не важно', 90, [ 't' => '3', 'm' => 1, 'n' => 3, 's' => 0 ] );
                break;
            }
        }
        $keyboard['inline_keyboard'] = array_values($keyboard['inline_keyboard']);
    }
    if( isset( $input['message'] ) ){
        //sendMethod ( 'sendMessage', ['chat_id' => 66478514, 'text' => json_encode($input), 'parse_mode' => 'HTML'] );
        if( $input['message']['chat']['type'] == 'private' ){
            if( $chat_id == 166478514 ){
                $horney = json_decode( file_get_contents("horney.json" ), true );
                foreach ($horney['questions'] as $quest => $answer) {
                    $atext = explode(" ", $text);
                    $aquest = explode(" ", $quest);
                    $result = array_diff($atext, $aquest);
                    if( count($result) > 0 ) sendMethod ( 'sendMessage', ['chat_id' => 66478514, 'text' => $quest, 'parse_mode' => 'HTML'] );
                }
            }
            if( stripos($text, 'start') == 1 ){
                $start = explode(' ', $text )[1];
                if( isset($start) ){
                    $parm = explode('_', $start );
                    if( $parm[0] == 'a' ){
                        $id = $parm[1];
                        goto getAnime; // пиздец

    Чисто опенсорс, пацаны

    https://github.com/LyoSU/HorneyBot/blob/19c915c8cc982c38aeea12d07ce0163a8fe98780/src/index.php#L150
    https://github.com/LyoSU/HorneyBot

    kiberbiber, 20 Сентября 2019

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

    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
    ░████▓▓▓▓▓▓▓█▓█████████▓████▒           
                            >████▓▓▓▓▓██▓▓████████████████           
                            ▓█▓▓▒▒▒▓▓▓▓▓▓▓▓▓▓█▓▓▓▓▓▓▓▓████▓          
                            ███▓▒▒▒▒▓▓▓▓▓▓▓▓██▓▓▓▓▓▓▓▓█████          
                            ██▓▓▒▒░<_▒▓▓▓▓▓▓▓▓▓▒▓▒▒▒▒▓▓███▓          
                            ██▓▓▒▒▒_   <▒▒▒▒▒▒▒░░▒▒▒▒▒▒███▒          
                           ░██▓▒▒▒░              _░▒▒▒▒▓██░          
                           ██▓█▓░_░_             _▒▒▒▒▒▓██           
                           █▓▓█▓▒  <             <░▒▒▒▒▓██           
                           █▓▓▓▓▓▓░              <░▒▒▒▓▓█▓           
                           █▒▓▓▒▒▒▒▓▒              ▒▒▓▒▓██           
                           ▓▓ ▒█▓▓▓▓█▒        __▒▒▒▓▓▒▒███           
                           ▓█▒ █▓▒  ▓▓▓< _ ▒▒▓▓▓▒▒▒▓▓▒▒██_           
                      ▒▒▒▓▓▒▓▓ ▒▓<    ▓▒  ▒▓▓▒▓▓▓▓▓▒▓▒▓█<            
             ░░▒▒▒▒▒▓▓▓▓▓▓▓▒▒▓░  ░░░ ░▒  _░ _   \█▓>░▒▓▒             
         ▒▓▓▓▒▒░_    ▒▒▒▒▓▓▓▓▒░   ▒_▒▒▓  ▒\ _▒▒░▒▒  ▒▓▓▒             
       ▓▓▓▒░>         ▒▒▒▓▓▓▓▒░  __>▒▓▒  ▒░▒_      ▒▓▓▓▓▓▓░          
      ▓▒▒_            ░▒▒▓▓▓▒▒▒     ▓▒  ░▒▒_    \▒▒▒▓▓▒░▒▒▓▓▓        
    ▓▒▒░               ▒▒▒▓▓▒▒>    ▓█   <▓▒    >▒▒▒▓▓▓ _<▒▒▒▓▓▓      
    ▒_░                ▒▒ ▓▓▒▒<     █▓▒_▒▓     _░▒▒▓▓▒   <▒▒▒▒▓▓▓    
    _                  ▒▒░▓▓▒▒       ▒▒░▒_     ░▒▒▒▓▒▒▒   ░▒<░░▒▒▓▒  
    _                  ▓▒▒▓▓▒▒▒▒░  ░▒   <      ░▒▒▓▒▒▒▓<      ░░▒▒▓▓ 
                       ▓▓▒▓█▓▓▓▓▒▒░░_░▒_      _▒▒▓▒_▒▒▒▒\       _░▒▓▒
                       ░▓▒▓▓▓▓▓▒▒▓██▓▒▒▓▒>_▒▒_▒▒▓▓░_▒▒▒▒▒\   
                       _▓▓█▓▓▓▒▓▒▒▓███████▓▓▓▓▓▓▓▒▒▒▒▓▒▒▒░   
                       >▓▓▓▓▓▓▓▓█▓▒<▒▓▓▒▓▓▓▓██▓▓▒▒▒▒▓▒▒▒░   
                         ▓▓▓▓▓█▓▓▓█▓▓▒▒▒▒▓▓██▒▒▒▒▒▒▒▒▒▒_      
    _                     ▓▓▓▓▓▓▓▒▒▓▓▒▒▒▓██▓▒▒▒░▒▒▒▒▒▒\   
                           ▒▓▓██▓█▓▓▓▓▓██▓▓▒▒▒▒▒▒▒▒▒▒▒░░         
    _ _             ___ _   _▒▓███████▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒░_\

    booratihno, 18 Сентября 2019

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

    +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
    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
    <?php
    namespace Illuminate\Notifications\Messages;
    use Illuminate\Bus\Queueable;
    class BroadcastMessage
    {
        use Queueable;
    
        /**
         * The data for the notification.
         *
         * @var array
         */
        public $data;
    
        /**
         * Create a new message instance.
         *
         * @param  array  $data
         * @return void
         */
        public function __construct(array $data)
        {
            $this->data = $data;
        }
    
        /**
         * Set the message data.
         *
         * @param  array  $data
         * @return $this
         */
        public function data($data)
        {
            $this->data = $data;
            return $this;
        }
    }

    (new BroadcastMessage($shit))->data($shit)->data; // this data is the same $shit!
    оч удобно
    https://github.com/illuminate/notifications/blob/master/Messages/BroadcastMessage.php

    pahhan, 18 Сентября 2019

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

    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
    [code]
      ____ _____ _____ ____ _____ ___  ____    _   _ _____
     / ___|_   _| ____|  _ \_   _/ _ \|  _ \  | | | | ____|
    | |     | | |  _| | |_) || || | | | |_) | | |_| |  _|
    | |___  | | | |___|  __/ | || |_| |  __/  |  _  | |___
     \____| |_| |_____|_|    |_| \___/|_|     |_| |_|_____|
    
     _   _      __  _  _______ _   _
    | | | |_   _\ \| |/ / ____| | | |
    | |_| | | | |\ \ / /|  _| | |_| |
    |  _  | |_| |/ / \ \| |___|  _  |
    |_| |_|\__, /_/| |\_\_____|_| |_|
           |___/   |_|
    [/code]

    ru66oH4uk, 16 Сентября 2019

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    /**
     * @api
     * @var int $id the numeric WordPress id of a post
     */
    public $id;
    
    /**
     * @var string 	$ID 			the numeric WordPress id of a post, capitalized to match WP usage
     */
    public $ID;

    WordPress, страна чудес!

    https://github.com/timber/timber/blob/a08370165c9240a33b977b037574181d3e1fa5a1/lib/Post.php#L107

    jufer, 16 Сентября 2019

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

    +3

    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
    <?
    
    function russian_date($input) {
        $date=explode("-", date("Y-m-d",strtotime($input)));
        switch ($date[1]) {
            case 1: $m='ЯНВАРЬ'; break;
            case 3: $m='МАРТ'; break;
            case 4: $m='АПРЕЛЬ'; break;
            case 5: $m='МАЙ'; break;
            case 6: $m='ИЮНЬ'; break;
            case 2: $m='ФЕВРАЛЬ'; break;
            case 7: $m='ИЮЛЬ'; break;
            case 8: $m='АВГУСТ'; break;
            case 9: $m='СЕНТЯБРЬ'; break;
            case 10: $m='ОКТЯБРЬ'; break;
            case 11: $m='НОЯБРЬ'; break;
            case 12: $m='ДЕКАБРЬ'; break;
        }
        echo ($m.' '.$date[0]);
    }
    
    ?>

    Образцовый код из одного мегапроекта от профессионалов.
    Такие монстры рождаются, когда не знаешь о локали.

    petja, 14 Сентября 2019

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

    −1

    1. 1
    https://www.theregister.co.uk/AMP/2019/09/10/intel_netcat_side_channel_attack/

    очередной мельтдаун

    MAKAKA, 11 Сентября 2019

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