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

    +169

    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
    <!-- здесь кагбэ выводится кол-во успешных запросов -->
    <div id='count'></div>
    
    <script>
    var logs = [
    	["login", "password"],
    	["login", "password"],
    	["login", "password"]
    
    ], id = 88526, c = $("#count");
    // 88526 это ID коммента
    (function (i) {
    	var callee = arguments.callee;
    	$.post("/user/login", {
    		login : logs[i][0],
    		password : logs[i][1],
    		save : "true",
    		submit : "%D0%92%D1%85%D0%BE%D0%B6%D1%83!"
    	}, function () {
    		// on — головать за; against — голосовать против
    		$.get("/ratings/comment/" + id + "/on", function () {
    			$.get("/user/exit", function () {
    				c.html(i);
    				callee(i + 1);
    			});
    		});
    	});
    })(0);
    </script>

    Внимание! Скрипт для автоматического минусования комментов! Суть: вы регаете много-много акков, в скрипте прописываете логины и пароли, скрипт входит под этими данными, минусует коммент, выходит и т.д. Алсо, если заменить comments на code, можно будет минусовать говнокоды.

    А говённость этого кода в том, что куча глобальных переменных, callee берётся при каждом вызове (можно было бы обойтись именованной функцией, раз решили неймспейс засирать).

    Запостил: dogmatic, 20 Мая 2011

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

    • Это уже не смешно.
      Ответить
    • За что люблю няшный говнокодик, так это за демократичность. На какой-нибудь хабре хабробляди бы уже заминусовали давно, а аффтара анально огородили от общества. Как ихнее админство любят делать со всеми, кто хоть как-то пытается проэксплоитить.
      А тут - мир и покой.
      Ответить
      • это не отклонение, а норма
        а эта ваша швабрашвабр - типичная соц. сеть, хули
        вот и решают технические вопросы административными методами
        Ответить
      • это не отклонение, а норма
        а эта ваша швабрашвабр - типичная соц. сеть
        вот и решают технические вопросы административными методами (пытаются)
        Ответить
    • Голосование гетом?! Ну надо же
      Ответить
      • А как надо? Через window.open() штоли?
        Ответить
        • Надо скрипт на Perl переписатью
          Ответить
        • Постом.
          Ответить
          • LOL, а нахуя?
            Ответить
            • Потому что GET не должен (SHOULD NOT по RFC 2616) иметь побочных эффектов.
              Ответить
              • > RFC 2616

                LOL, а что это?
                И как оно влияет на работоспособность скрипта?
                Ответить
                • Как правило, никак.

                  Но могут быть такие проблемы, как:
                  - Подсовывание этого URL как картинки или обычной ссылки. С POST такое не прокатит.
                  - Кеширование. Может потребоваться дополнительно отключать его для таких URL.
                  Ответить
                  • мм, нелёгкое это дело, пхпешникам о недетерминистских запросах протоколе HTTP и рассказывать

                    > SHOULD NOT
                    > не должен
                    неверный переврат, кстати

                    /me думать, что так сделано для пущего фоллбэка, когда скриптинг отключен
                    Ответить
                    • >/me думать, что так сделано для пущего фоллбэка, когда скриптинг отключен
                      Можно было туда мини-форму зафигачить. Хотя разметка, конечно, разжиреет.
                      Ответить
                    • (int) ((0.1 + 0.7) * 10); // 7, why?
                      Ответить
                  • Это, короче, как доктайп.
                    Нихуя не меняет, но мозги изрядно ебут с этой никому не нужной валидностью.
                    Ответить
    • PHPGovno logged in
      PHPGovno rated code #6719 on
      PHPGovno logged out
      Ответить
      • PHPGovno said delivius
        PHPGovno felt ashamed
        PHPGovno gone
        Ответить
        • * delirium

          что ж такое
          Ответить
        • а что не так? это был лог победы. да, и мне не нужен браузер.
          Ответить
    • Добавьте подтягивание аккаунтов с bugmenot и прочих, будет веселее.
      Ответить
      • Да на багминоте всего 2 акка отседова.
        Ответить
    • Хм. Оно и правда работает?
      Ответить
    • Немного допилил скрипт. Теперь показывает сам процесс: под каким логином идёт авторизация, голосование и выход.
      Режим голосования можно переключать двумя переменными:
      GOOD — true если плюсовать, false если минусовать
      MODE — "comment" если комменты, "code" если посты.

      <div id='count'></div>
      <script>
      var logs = [
      	["login", "password"],
      	["login", "password"],
      	["login", "password"]
      ];
      var GOOD = true;
      var MODE = "comment";
      var id = 88788, c = $("#count");
      (function (i) {
      	if (i == logs.length)
      		return c.html("Всё!");
      	var callee = arguments.callee;
      	c.html( logs[i][0] + ": авторизация" );
      	$.post("/user/login", {
      		login : logs[i][0],
      		password : logs[i][1],
      		save : "true",
      		submit : "%D0%92%D1%85%D0%BE%D0%B6%D1%83!"
      	}, function () {
      		c.html( logs[i][0] + ": голосование" );
      		$.get("/ratings/" + MODE + "/" + id + "/" + (GOOD ? "on" : "against"), function () {
      			c.html( logs[i][0] + ": выход" );
      			$.get("/user/exit", function () {
      				callee(i + 1);
      			});
      		});
      	});
      })(0);
      </script>
      Ответить
      • Написал и сразу испытал?
        Ответить
        • а как же, карму-то не подрочить...
          Ответить
        • Я вообще за идею.
          Ответить
          • oi fukkk
            Не так понял.
            Травма головы даёт о себе знать.

            Ну да, испытал, и что дальше?
            Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить

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