1. JavaScript / Говнокод #25042

    +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
    var btn_checkAll = document.getElementById('checkAll');
    if (btn_checkAll) {
        btn_checkAll.addEventListener('click', checkAll);
    }
    
    var inputTagsArray = [];
    function getInputTags() {
        inputTagsArray = document.getElementsByTagName('input');
        inputTagsArray = Array.prototype.slice.call(inputTagsArray);
    }
    
    
    function getArray(action) {
        getInputTags();
        var checkedInputTagsArray = [];
        inputTagsArray.forEach(function(element) {
            if (element.getAttribute('id')) {
                if (element.checked) {
                    checkedInputTagsArray.push(element.getAttribute('id'));
                }
            }
        });
        if (!checkedInputTagsArray[0]) {
            alert("Не было выбрано ни одного изображения");
            return false;
        }
        else {
            if (confirm("Вы уверены что хотите совершить данное действие?")) {
                //в пхп есть гет-метод, который удаляет картиночки по ид.
                //надо передавать ид, но я неосилятор и не осили аякс, поэтому
                //вместо нормального метода, принимающего массивом ид картиночек постом
                //я делаю это:
                location.href = "/products/" + action + "/?id=" + checkedInputTagsArray.join("_");
            }
            else {
                return false;
            }
        }
    }
    
    function checkAll() {
        getInputTags();
        inputTagsArray.forEach(function(element){
            if (element.getAttribute('id')) {
                 if (element.checked) {
                    element.checked = false;
                 }
                 else {
                    element.checked = true;
                 }
            }
        });
    }
    
    function deleteChecked() {
        getArray("imagedelete");
    }
    
    function showHideChecked() {
        getArray("show-hide");
    }

    в пхп есть гет-метод, который удаляет картиночки по ид.
    надо передавать ид, но я неосилятор и не осили аякс, поэтому
    вместо нормального метода, принимающего массивом ид картиночек постом
    я делаю это:

    Запостил: wowwtfisthatworking, 31 Октября 2018

    Комментарии (99) RSS

    • а в пхп методе я разбираю строку в массив и там уже перебираю.
      ебать я лох.
      Ответить
    • > удаляет
      > гетом
      Упрлс.
      Ответить
      • сорре, я быдлокодер-юниор, хуле мне. лишь бы работало.
        Ответить
      • да и браузер не может в delete, так что либо post, либо get.
        я выбрал стул не с пиками.
        Ответить
        • GET не должен иметь побочных эффектов (удаления, изменения и т.п.) иначе кровь-кишки-распидорасило.
          Ответить
          • наверное, но это же говнокод. на то он и называется так.
            я ж написал что неосилил аякс, а еборить формы на каждую картиночку так себе идея.
            Ответить
            • Можно скриптом создавать элемент form внутри iframe и кликать по форме (скриптом же). Так делали до повсеместного распространения AJAX.
              Ответить
              • ланлан, запилил на аяксе, заебали.
                тут, блядь, рофлят с говнокода или исправляют и учат как надо делать? какого предназначение сайта?
                Ответить
                • anuses.
                  Ответить
                • Ну вообще, изначально сайт создан для гомосексуалов, но потом его заспамили говнокодеры...
                  Орлы, я ничо не перепутал?
                  Ответить
                • >> тут, блядь, рофлят с говнокода или исправляют и учат как надо делать?

                  По-всякому бывает. Вот интегралы бывают двойные, бывают тройные, а бывает, придёшь домой, а там дети не кормлены, скотина не доена, бельё не стирано, печь не топлена...
                  Ответить
                  • И хуй не сосан.
                    Ответить
                    • Полно лапу тебе, лодырю, сосать,
                      Ответить
                      • Здесь доктор не отписывался. Однако атмосфера треда так и пропитана пошлостью и пидорством... Возможно, его роль в моральном разложении местного отребья слишком преувеличена?

                        Вопрос к админу. Может, уже пора забанить борманда, что спамит тут с разных фаек? Или ты и дальше будешь делать вид, что ничего не происходит?
                        Ответить
                        • Админ вообще странный человек. Вроде не похуюга - сервер оплачивает, - но для кого, блять, для кого? Неужели его никак не колышет, какой контингент у него собрался?
                          Ответить
                          • Откуда у тебя мой пароль?
                            Ответить
                            • Пароль твой несложен.

                              сотри защитный слой монеткой
                              ■■■■■
                              Ответить
          • почему?
            Ответить
            • Потому что F5 в браузере например
              Ответить
              • А тут про браузер. Ну тогда ладно.
                Ответить
                • ну и кеш надо явно запрещать тада
                  Ответить
                  • Просто юзаю GET потому что смотрибельный результат сразу, а что делает гад это уже проблема кода. хоть ЭфПятка хоть что. Да я и не вебер нихуя, приходилось просто как-то раз передавать не через сокеты TCP/UDP говно, а через HTTP сокеты.
                    Ответить
                    • >>Просто юзаю GET потому что смотрибельный результат сразу,
                      POST тоже

                      >>это уже проблема кода.
                      Побочные эффекты не должны быть по GET, потому что
                      1) браузер может обновить страницу сам (после потери подключения или при переключении таба в мобильном устройстве)
                      2) прокси по дороге кеширует результат, если ты явно это не запретишь заголовком

                      >>не через сокеты TCP/UDP говно, а через HTTP сокеты.
                      Ну, HTTP же работает поверх TCP сокетов. Просто для него везде есть высокоуровневые api
                      Ответить
        • В "PHP" есть $_REQUEST, который и пост, и гет, и, возможно, куки. Поэтому
          Ответить
          • В "PHP" есть $, который и пост, и гет, и переменная

            зы: register_globals запертили, суки
            Ответить
            • Ох ебать, не знал, что такое было. Это же пиздец. Хорошо, что отключили.
              Ответить
              • Вплоть до версии PHP 4.2.0 значение по умолчанию параметра register_globals было "On". Большинство PHP-программистов использовали эту возможность для упрощения кодирования.
                https://phpclub.ru/detail/article/globals
                Ответить
                • PDO
                  https://phpclub.ru/talk/threads/fetchcolumn-%D0%B4%D0%BB%D1%8F-mysqli.85514/
                  Ответить
                  • $params = []

                    Ого! Требуется как минимум PHP 5.4 (в PHP 5.3 было бы array() ).

                    Ещё не так давно просили адаптировать код под PHP 5.2, чтобы можно было запустить на говнохостинге.
                    Ответить
                    • ого, литералы для array!
                      Ответить
                      • Вот хороший
                        https://phpclub.ru/talk/threads/%D0%98%D0%BD%D1%8A%D0%B5%D0%BA%D1%86%D0% B8%D0%B8.85389/

                        Я думаю что Фанат пишет у нас на сайте под ником KitKat
                        Ответить
                      • Ещё добавили литералы для двоичных чисел: 0b001001101.

                        В 5.4 ещё завезли трейты (в других языках они называются миксинами или как-то так):
                        http://php.net/manual/ru/language.oop5.traits.php

                        В 5.5 ещё завезли генераторы (с магическим словом «елда»):
                        http://php.net/manual/ru/language.generators.overview.php

                        А ещё в 5.5 появилось finally в трай-кетче. Да, раньше разработчики "PHP" считали, что оно не нужно!

                        В семёрке появилась возможность объявлять массивы в качестве констант через define.

                        В 7.1 разрешили использовать [] вместо list() в левой части выражения. Теперь можно писать [$a, $b] = [$b, a]; вместо list($a, $b) = array($b, $a);

                        Что же завезут в новой версии?
                        Ответить
                        • корутины? декларацию типов?

                          >>литералы для двоичных чисел: 0b001001101
                          в пых всегда добавляют самое нужное
                          собезьянничали поди с кое кого

                          >> миксинам
                          ну в руби да, а в питоне миксины это просто множественное наследование

                          Еще бывают категории (как в обжс и, вероятно, свифт) или экстеншен методы (котлин, си с решеточкой)

                          Суть та же практически.

                          >>елда
                          питонячество

                          >> объявлять массивы в качестве констант через define.
                          охуенно удобно и полезно конечно же когда у тебя константа и переменная объявляются САВЕРШЕНННА по разному

                          в няшной это имело смысл бо там это делал препросецессор но кажется даже в крестах это прокляли в пользу const
                          Ответить
                          • пыхеры завезли опциональную статичечскую тупизацию

                            но не осилили вариантность
                            https://kinsta.com/blog/php-7-2/

                            Даже питонисты осилили

                            Как это смешно конечно: 20 лет скриптобоги рассказывали что статическая тупизация не нужна и только мешает
                            и вот
                            Ответить
                            • Это не статическая тупизация. Это хинт типа. Просто чтобы предупреждение выскакивало, если тип неподходящий.
                              Ответить
                              • Ну, это возможность явно указать тип чтобы его статически можно было проверить, правда проверяют его все равно в рантайме , так что типизация не статическая, но явная


                                Год 2030: PHP 24.12.
                                Теперь типы выводятся автоматически

                                void petuh(Number $number) {echo($number)}
                                var $petux = "petux";
                                petuh($petux); //будет ворнинг



                                Год 2050: PHP 44.12.
                                Теперь типы выводятся автоматически!

                                fun petuh($number) {return $number + 1}

                                trim(petuh(42)) //будет ворнинг, зуб даю!



                                зуб даю!
                                Ответить
                                • Год 2060: PHP 54.12.

                                  fun petuh($number): Maybe[Number] =$number > 0 : $number + 1 ? Null

                                  echo( petuh(42)) //будет ошибка

                                  when petuh(42)
                                  is Null -> echo (fail)
                                  else -> //вот
                                  Ответить
                                • >> Теперь типы выводятся автоматически

                                  В "PHP" ничего не надо выводить. Тип хранится в значении самой переменной в рантайме. Каждая переменная — это запись из следующих полей: значение, тип значения, количество ссылок на эту переменную (для gc) и флаг, индицирующий, что переменная является ссылкой на другую:
                                  typedef struct _zval_struct {
                                      zvalue_value value;        /* variable value */
                                      zend_uint refcount__gc;    /* reference counter */
                                      zend_uchar type;           /* value type */
                                      zend_uchar is_ref__gc;     /* reference flag */
                                  } zval;

                                  zvalue_value является union'ом:
                                  typedef union _zvalue_value {
                                      long lval;                 /* long value */
                                      double dval;               /* double value */
                                      struct {                   
                                          char *val;
                                          int len;               /* this will always be set for strings */
                                      } str;                     /* string (always has length) */
                                      HashTable *ht;             /* an array */
                                      zend_object_value obj;     /* stores an object store handle, and handlers */
                                  } zvalue_value;


                                  Именно поэтому я за "PHP".
                                  Ответить
                                  • Мне казалось так во всех скриптовых языках, не?
                                    Ответить
                                    • Не во всех. В bat-файлах есть только строки. Там даже в рантайме не надо тип указывать.

                                      Именно поэтому я за ".BAT".
                                      Ответить
                                      • А в преле?
                                        Ответить
                                        • В Перле статически различаются $скаляр, @массив, %хэш-таблица, &функция, *таблица символов.

                                          Тип значения, лежащий в скаляре, определяется динамически. Более того, текущим значением типа для целого питуха может быть как IV (signed), так и UV (unsigned). Знаковое или беззнаковое будет значение, решает интерпретатор Перла.

                                          Напомню, что в "PHP", например, все числа знаковые.
                                          Ответить
                                          • Ну и жопа в исходниках. Нихера не понятно — это мягко сказано.

                                            Повсюду сленг (SV — скаляр, AV — массив, HV — хэш-таблица, CV — ссылка на функцию, GV — таблица символов).

                                            Документация написана через жопу (напоминает юниксовые маны, но если в юниксовом мане страница посвящена конкретной программе или конкретной функции, то в Перле страница посвящена непонятно чему; нужно долго искать нужную страницу).
                                            Ответить
                                            • хуянишд
                                              Ответить
                                              • Учит пользоваться гуглом
                                                https://stackoverflow.com/questions/392135/what-exactly-does-perls-bless-do
                                                Ответить
                                                • use strict;
                                                  
                                                  package petux;
                                                  
                                                  sub new {
                                                          return bless {t => 0};
                                                  }
                                                  
                                                  sub coco {
                                                          my $this = shift;
                                                          my $coc = $this->{t}++;
                                                          print "Coco $coc \n";
                                                  }
                                                  ############
                                                  #!/usr/bin/perl -W
                                                  use strict;
                                                  require petux;
                                                  
                                                  my $pe = petux::new();
                                                  $pe->coco();
                                                  $pe->coco();
                                                  $pe->coco();
                                                  $pe->coco();


                                                  Дзенкуеме что напомнил мне этот чудный язык
                                                  Ответить
                                                  • Переведе.
                                                    Ответить
                                                    • Проверь.
                                                      Ответить
                                                    • Пожалуйста

                                                      class Petux  {
                                                        private var i = 0
                                                        fun coco() {
                                                          val coc = i++
                                                           print "Coco $coc n"
                                                        }
                                                      }
                                                      /////////
                                                      val pe = Petux()
                                                      pe.coco()
                                                      pe.coco()
                                                      pe.coco()


                                                      Еще одно за счет заведения
                                                      class Petux
                                                        def initialize
                                                      	@i = 0 
                                                        end
                                                        def coco
                                                          co = @i += 1
                                                          p "Coco #{co}"
                                                        end
                                                      end
                                                      
                                                      #########
                                                      #/usr/bin/ruby
                                                      
                                                      p = Petux.new
                                                      p.coco
                                                      p.coco
                                                      p.coco
                                                      Ответить
                                          • Иными словами в рантайме знания о типе нет
                                            Можно сказать что перл (и .bat) не типизированные
                                            В отличие от Python, PHP, Ruby и JS

                                            $pitux и есть $pitux, хоть там 42, хоть там "вася"

                                            >>, то в Перле страница посвящена
                                            perldoc?
                                            Ответить
                                            • Не уверен. Больше склоняюсь к версии, что Перл в рантайме хранит пометку, что лежит в простой переменной: строка или число. Не просто так же в его исходниках дофига union'ов. Но если в "PHP" в переменной может лежать как скаляр, так и ассоциативные массивы, замыкания и объекты, то в Перле принято разделять переменные для простых типов (скаляров) и для сложных типов (массивов и т. п.).

                                              В Перле развито автоматическое преобразование типов. Строка в число и обратно преобразуются за кулисами, поэтому и кажется, что типов нет.

                                              P.S. Надо разобраться, как работает Data::Dumper.
                                              Ответить
                                              • >>развито автоматическое преобразование типов.

                                                Да, типизация там не строгая

                                                "питух" + 42 не приведет к ошибке как в питоне

                                                >>принято разделять переменные для простых типов (скаляров) и для сложных типов (

                                                Причем там есть еще забавное понятие "скалярный контекст".

                                                Массив в скалярном контексте возвращает кол-во элментов. Но можно и форсануть контекст через ключ слово (или функцию?) scalar

                                                @users = ("a", "b", "petux");
                                                print @users; # нескалярный контекст, будет abpetux
                                                print scalar @users; #скалярный контекст, будет 3
                                                print @users + 1; #неявный скаларный контекст, будет 4
                                                Ответить
                                                • В чём смысл строгой (или статической) типизации?
                                                  Ответить
                                                • print ("a", "b", "petux") + 1; # выводит: abpetux
                                                  print (("a", "b", "petux") + 1); # выводит 1
                                                  @users = ("a", "b", "petux");
                                                  print @users + 1; # выводит 4
                                                  Ответить
                                                  • Вот это не массив -- print ("a", "b", "petux")
                                                    Вот массив -- @FOO

                                                    $a = (1,2,3) + 1;
                                                    print $a; #4
                                                    Ответить
                                                    • print ["a", "b", "petux"] + 1; # выводит 23079829

                                                      В "PHP" такого нет. Именно поэтому...

                                                      Я понял, почему print ("a", "b", "petux") + 1 работает неправильно: там сначала вычисляется print ("a", "b", "petux"), а потом прибавляется единица. А если поставить скобки, то создаётся массив из одного элемента. Кажется, в Питоне что-то похожее.

                                                      Как изменить приоритет, не вводя лишних переменных?
                                                      Ответить
                                                      • print((1,2,3) + 1) же
                                                        Ответить
                                                        • А вообще () это лист (он может неявно быть приведенным к массиву)
                                                          а массыв это []
                                                          https://stackoverflow.com/questions/6023821/perl-array-vs-list
                                                          Ответить
                                                        • print((1,2,3) + 1) работает, print(("pituh","unskilled","tsar") + 1) не работает.
                                                          Ответить
                                                          • ойблядь
                                                            ад и палестина

                                                            надо почитать больше про контексты листовые
                                                            я уже лет 15 перла не трогал, и всё забыл
                                                            Ответить
                                                            • все, понял свою часть

                                                              @a = (1,2,3) создает массив @a
                                                              [1,2,3] создает массив где-то и возвращает тебе на него ссылку
                                                              ссылка скалярна
                                                              $a = [1,2,3]

                                                              $a -- ссылка на массив, потому при попыткее ее напичататььб будет ARRAY()

                                                              дереференсят ссылки указывая значок типа и переменную

                                                              @$a -- это уже массив (для хеша был бы %$a)

                                                              завтра над твоей подумаю
                                                              Ответить
                                                              • блядь
                                                                держитесь за стул

                                                                print это унарный оператор (именно потому скобки опциональны, но повышают ему проритет)

                                                                scalar тоже оператор, и у него один аргумент

                                                                так что scalar ("a", "b", c") не сработает (получит только a)

                                                                Я придумал так:

                                                                print scalar @{["A", "B", "C"]} + 1 ;

                                                                и это работает

                                                                тут у нас scalar получает один аргумент -- массив, полученный в результате дереференса указателя на массив.
                                                                Возвращает скаляр 3. Добавляем 1, получаем 4.

                                                                Слушайте, ну это же адок. А я ведь на этом писал...
                                                                Ответить
                                                                • Нихуя не понимаю. Это вы "PHP" обсуждаете, или что?
                                                                  Ответить
                                                                  • Это Perl

                                                                    В "PHP" собачка имеет совершенно иной смысл
                                                                    Ответить
                                                      • ["a", "b", "petux"] + 1
                                                        ты взял адрес массива в куче и прибавил 1
                                                        получил 23079829

                                                        дереференснуть можно так
                                                        ["a", "b", "petux"]->[0]
                                                        или так
                                                        @{["a", "b", "petux"]}[0]
                                                        Ответить
                                                        • Я разобрался.
                                                          Надо было просто запускать perl -W и читать варнинги

                                                          () - это НЕ тип данных, это конструкция языка, называется "list". Напоминает сиквенсы в луа.

                                                          В зависимости от контекста она ведет себя по разному.

                                                          ($a, $b) = (1, 2)
                                                          заполняет a и b значениями 1 и 2

                                                          $a = (1, 2) просто установит a в 1, а 2 потеряет (и выдаст ворнинг)

                                                          print это оператор, но если вызвать его с листом, то он поведет себя как функция и тупо склеет все аргументы

                                                          заметь: я ничего не сказал про массив, массивов тут нет, а узнать размер можно только у массива! именно массив в скалярном контексте выдает размер

                                                          @a = (1, 2, 3) означает "создать массив и заполнить его 1,2,3"

                                                          print scalar @a; выдаст 3
                                                          print @a + 1 выдаст 4

                                                          [] создает массив в куче и возвращает на него реферес

                                                          Разыменовав его можно получить массив

                                                          my $refArray = [1,2,3];
                                                          print scalar @{$refArray}; #разыменовать референс и поместить в скалярный контекст

                                                          будет 3

                                                          или можно так
                                                          print scalar @{[1,2,3]};


                                                          Чтобы это раскрурить надо:
                                                          1) понимать разницу между массивом и листом
                                                          2) понимать референсы

                                                          Кстати, референс можно взять обратной косой чертой (подсечением)

                                                          my @a = (1,2,3);
                                                          my $ref = \@a;

                                                          print scalar @{$ref};

                                                          Кроме листа есть еще qw, там можно не писать запятые и кавычки (как в руби):
                                                          my @ar = qw(a b c);

                                                          print scalar @ar;

                                                          Так же можно разыменовывать стрелочкоц
                                                          my $ref = [1,2,3];

                                                          print $ref->[1];
                                                          тоже што и
                                                          print @{$ref}[0];

                                                          но когда обращаемся к элементу @foo можно писать $foo[0]

                                                          print ${$ref}[0];
                                                          Ответить
                                            • use Data::Dumper;
                                              package main;
                                              $pituh = 2;
                                              print Dumper($pituh), "\n";
                                              $pituh = '2';
                                              print Dumper($pituh), "\n";


                                              Выводит:
                                              $VAR1 = 2;
                                              
                                              $VAR1 = '2';


                                              Т. е. Перл различает, когда хранится строка и когда хранится число.
                                              Ответить
                                  • Как ты это нашел в коде?
                                    Ответить
                                    • В "PHP" про zval и zvalue_value написано прямо в документации (там в самом конце раздел для «хакеров», в котором описано ядро, опкоды и как писа́ть расширения для "PHP" в нативном коде).

                                      А в Перле мозги сломаешь, пока найдёшь аналогичную конструкцию. Вроде и исходники писа́л не Роджер Хуй, но всё равно ничего не понятно.
                                      Ответить
                                      • инканус, ты что, потерял ключи от аккаунта?
                                        Ответить
                                        • Почему вы так обо мне беспокоитесь?
                                          Ответить
                                          • Потому что всем очевидно что рассуждать про .TPU и far указатели в borland C 3.11 и про кишки PHP тут может только инканус
                                            Ответить
                                            • А про получение кода цэцэ через UART с жёсткого диска «Seagate» и про маршрутизацию в разных сетях здесь может только roskomgovno a. k. a. barop...

                                              Именно поэтому я не вижу смысла в логинах на ГК.

                                              Кстати, что с твоими учётками?
                                              Ответить
                                          • > Почему вы так обо мне беспокоитесь?

                                            Потому что гость8 в игноре, а тебя видеть в стоке хочется.
                                            Ответить
                                      • Бо only perl can run Perl
                                        Кроме Ларри туда нехуя суваться никому
                                        Ответить
                        • Что из этого всего использует "OBEH"?
                          Ответить
                          • Процедурное программирование без хинтовки, чтобы не ограничивать свободу проектирования.
                            Ответить
                            • Овен, прсонись! пхп хуеет!
                              Переходи на руби, там такого нет
                              Ответить
                    • Не так давно - это лет 10?
                      Ответить
      • RESTLess API
        Ответить
      • А потом на сайт пришёл бот Гугла и удалил все картинки.
        Ответить

    Добавить комментарий