Школоло / Говнокод #13683 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
Раз уж у нас пошла мода на анальные уроки - выложу, пожалуй, еще одну ссылку:

http://avtuh.ru/2010/04/09/delphi-dopolnitelnyj-potok-v-programme.html

На видео анальный учитель с сайта avpetuh.r доходчиво объясняет, как нужно обращаться из потока к компонентам формы.
Долой синхронизацию!!!

Запостил: Stertor Stertor, (Updated )

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

  • Уже с самого начала доставляет эта фраза: "[в программе] всего 2 функциональные кнопочки: делают они одно и то же -вводят в мемо цифры от 1 до 10 000. Но только одна кнопочка запускает это в 1 потоке, а другая - в нескольких"
    D
    Ответить
    • Цифры от 1 до 10000... хуяссе у него система счисления... десятитысячеричная.
      Ответить
      • Борманд, раз уж ты здесь, не подскажешь, как можно подделать вот такой запрос:

        function WebForm_MyDoCallback(eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync) {
        	var postData = "__EVENTTARGET=" + "&__EVENTARGUMENT=" +
        				"&__CALLBACKID=" + WebForm_EncodeCallback(eventTarget) +
        				"&__CALLBACKPARAM=" + WebForm_EncodeCallback(eventArgument);
        	var xmlRequest, e;
        	try {
        		xmlRequest = new XMLHttpRequest();
        	}
        	catch (e) {
        		try {
        			xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
        		}
        		catch (e) { }
        	}
        	var callback = new Object();
        	callback.eventCallback = eventCallback;
        	callback.context = context;
        	callback.errorCallback = errorCallback;
        	callback.async = useAsync;
        	callback.xmlRequest = xmlRequest;
        	WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback);
        	xmlRequest.onreadystatechange = WebForm_CallbackComplete;
        	xmlRequest.open("POST", theForm.action + (theForm.action.indexOf("?") != -1 ? "&r=" : "?r=") + Math.random(), true);
        	xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
        	xmlRequest.send(postData);
        }
        ??

        генерируется какой-то цифровой код, который отправляется с запросом.
        Ответить
        • Да просто рандом там генерится, емнип, чтобы кривые кеширующие прокси херней не страдали (хотя, по хорошему POST'ы вообще кешировать нельзя).

          Вставляй в это поле рандом, или как выше пишет аноним - константу, и все будет работать.
          Ответить
        • Борманд, раз уж ты здесь, не почитаешь мне сказку на ночь?)
          Ответить
        • Большое спасибо, товарищи. Но можно подробнее, что за константу?
          Я пытался подставлять отснифанный рандом, в котором изменял 1 или 2 цифры - сервер выдавал ошибку.
          Ответить
          • Ну х.з., скорее всего в другом месте проблема. Math.random() это самый обычный рандом, ничего таинственного в нем нет.

            Может хочет, чтобы ты правильный Referer передал?

            > сервер выдавал ошибку.
            Код не запомнил?

            P.S. Предлагаю отснифать оригинальный пакет и твой пакет, и тупо сравнить их на глаз. Сразу будет видно чего не хватает.
            Ответить
            • HTTP/1.1 500 Internal Server Error

              Да, я так и делаю: снифаю, потом составляю запрос. Реферер тоже учел.
              Как я понял, происходит следующее: юзер заходит на страницу, вводит свои рег. данные затем исполняется свиток, и перенаправляет нас на нужную страницу. Но в моем случае почему-то не прокатывает.

              И еще один вопросик. В заголовке запроса написано следующее:
              POST http://www.<доменное имя>/?r=0.7682170964630175 HTTP/1.1

              Когда же я отсылаю свой запрос (Indy 10, idhttp) то в логах сниффера версия протокола бывает HTTP/1.0... Интересно, что я делаю не так?
              Ответить
              • > снифаю потом составляю запрос
                Не, я предлагаю еще и свой отснифать, и прям все строчки сравнить у оригинального и твоего пакетов.

                Все серваки обычно нормально едят старенький HTTP/1.0, вроде от этого проблем не должно быть.

                > Интересно, что я делаю не так?
                Ну возможно инди настолько древнее, что еще не знает о 1.1 😉
                Ответить
                • Борманд, а что это за штука:

                  application/x-www-form-urlencoded; charset=utf-8

                  Возможно ли это отправить через tstringlist, или нужно заполнять idmultipartformdatastream?
                  Ответить
                  • Спасибо вам всем большое, дорогие товарищи, Борманд - Вам лично. Я разобрался.
                    Оказывается, просто нужно было правильно заполнить idmultipartformdatastream, указать тип и кодировку.
                    Ответить
                    • > нужно было правильно заполнить idmultipartformdatastream
                      О как. Ну я индям не обучен, последний раз их лет 10 назад видел 😉
                      Ответить
                  • Это заголовок content-type, который показывает, какого рода инфа лежит в постдате. Без него однозначно работать не будет.

                    А вот как заголовки в инди передают - я хз. Что-нибудь со словом header.

                    MultipartFormDatastream здесь по идее не нужен. Мультипарты юзают для заливки файлов на сервер и т.п...
                    Ответить

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

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8