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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var url="/registration/reg.php?file_photo="+src_img+"&reg_email="+
    reg_email+"&last_name="+last_name+"&name="+encodeURIComponent(name)+
    "&reg_phone="+encodeURIComponent(reg_phone)+"&group_user="+group_user;
    				$('#ajax_result').load(url, function(response, status, xhr) {
    					document.location.href="success.php";
    				});

    Вот такая милая регистрация пользователя. Только вот группа пользователя указывается в запросе и не проверяется на стороне сервера.
    В результате можно зарегистрироваться администратором сайта, подставив не столь уж неизвестный id группы администраторов в параметр group_user

    twsdwf, 30 Марта 2012

    Комментарии (5)
  2. JavaScript / Говнокод #9817

    +155

    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
    if (
            (_methodName == "invoke") ||
            (_methodName == "auth") ||
            (_methodName == "resetAuth") ||
            (_methodName == "registerMethod") ||
            (_methodName == "registerAllMethods")
           )
        {
           throw "Illegal method name " +_methodName +" - service method with this name already exist";
        }
        else
        {
            eval("ComponentClient.prototype."+_methodName+" = function (_parameters) {return this.invoke(\""+_methodName+"\", _parameters)}")
        }

    И там много ещё такого

    konsoletyper, 30 Марта 2012

    Комментарии (3)
  3. JavaScript / Говнокод #9786

    +153

    1. 1
    2. 2
    3. 3
    if (childMenus[oRow._index]) if (TransMenu.sub_indicator && oRow.lastChild.firstChild.src) {
    			oRow.lastChild.firstChild.src = TransMenu.dingbatOn
    		}

    zima, 28 Марта 2012

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

    +155

    1. 1
    2. 2
    var len = final_amount.length;
    var final_amount_formatted = (final_amount == "" ? "0" : final_amount.substring(0,len-2) + '.' + final_amount.substring(len-2, len));

    cancerogen, 26 Марта 2012

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

    +156

    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
    attr_sel:function(tag,cn,at,vl,inv)
    {
    	if (typeof(inv)=='undefined'){
    		inv=0;
    	}
    	var allT=document.getElementsByTagName(tag), allCN={}, i=0,j=0,a;
    	while(a=allT[i++]){
    		if (cn!='' && this.hasClass(a,cn))
    		{
    			if ((!inv && a.getAttribute(at)==vl)||(inv && a.getAttribute(at)!=vl))
    			{
    				allCN[j]=a;
    				j++;
    			}
    		}else{
    			if ((!inv && a.getAttribute(at)==vl)||(inv && a.getAttribute(at)!=vl))
    			{
    				allCN[j]=a;
    				j++;
    			}
    		}
    	}
    	return allCN;
    }

    По следам полосатого слона #9757
    Выборка по классу и значению атрибута.

    roman-kashitsyn, 25 Марта 2012

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

    +154

    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
    selector:function(tag,cn,pr,r)
    {
    	var allCN={}, i=0,j=0,a;
    	if (typeof(pr)=='undefined'){
    		var allT=document.getElementsByTagName(tag);
    	}else{
    		var allT=pr.getElementsByTagName(tag);
    	}
    	if (typeof(r)=='undefined'){
    		r=0;
    	}
    	while(a=allT[i++]){
    		
    		if (this.hasClass(a,cn))
    		{
    			allCN[j]=a;
    			j++;
    		}
    	}
    	return allCN;
    }

    я понимаю, что jquery использовать нельзя было, но зачем так всё запутывать...

    roman-kashitsyn, 25 Марта 2012

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

    +151

    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
    if(hS.reformal.val && !h.inFrame){ // добавление виджета reformal.ru для отправки багрепортов (можно то же из настроек)
    		addJs(function reformal_preload(){
    			reformal_wdg_w	= "713";
    			reformal_wdg_h	= "460";
    			reformal_wdg_domain	= "habrajax";
    			reformal_wdg_mode	= 0;
    			reformal_wdg_title   ='<a href="//userscripts.org/scripts/show/121690" target="_blank">HabrAjax</a> - чтобы сайт стал удобным';
    			reformal_wdg_ltitle  = "БАГИ";
    			reformal_wdg_lfont   = "";
    			reformal_wdg_lsize   = "";
    			reformal_wdg_color   = "#269bd1";
    			reformal_wdg_bcolor  = "#73859e";
    			reformal_wdg_tcolor  = "#FFFFFF";
    			reformal_wdg_align   = "right";
    			reformal_wdg_charset = "utf-8";
    			reformal_wdg_waction = 0;
    			reformal_wdg_vcolor  = "#559ecf";
    			reformal_wdg_cmline  = "#d3d8df";
    			reformal_wdg_glcolor  = "#105895";
    			reformal_wdg_tbcolor  = "#FFFFFF";
    			reformal_wdg_tcolor_aw4  = "#3F4543";
    			reformal_wdg_bimage = "cac7b640e87a20ba02df24d613d54a1d.png";
    			reformal_html ='';
    			document.write = function(a){reformal_html +=a;};//обход doc.write
    		});
    		addJs('http://reformal.ru/tabn2v4.js?charset=utf-8' //виджет reformal.ru и его постобработчик
    			, hS.versionNumb
    			, 'MyOtziv'
    			, function reformal_postload(){ //загрузка после doc.write и подгонка стилей, текстов
    			var elem = document.createElement('DIV');
    			elem.id ='reformal_holder';
    			elem.innerHTML = reformal_html;
    			document.body.insertBefore(elem, document.body.childNodes[0]);
    			document.getElementById('myotziv_box').style.zIndex = 3001;
    			var reformal_butt = document.querySelector('#reformal_holder .frgtd'); //кнопка открывания виджета, |.frby
    			reformal_butt.style.right='-4px';reformal_butt.style.width ='17px';
    			reformal_butt.querySelector('img').style.position='relative';
    			reformal_butt.querySelector('img').style.left='-4px';
    			reformal_butt.style.overflow ='hidden';
    			reformal_butt.querySelector('a').title ='Пожелания и баги HabrAjax';
    			reformal_butt.querySelector('a').style.marginBottom ='3em';
    			var reformal_closeButt = document.querySelector('#reformal_holder .pokusijy'); //кнопка закрытия
    			var reformal_goto = document.createElement('DIV');
    			reformal_goto.innerHTML ='<a href="http://habrajax.reformal.ru/" target="_blank">смотреть всё</a>';
    			reformal_closeButt.parentNode.insertBefore(reformal_goto, reformal_closeButt.nextSibling);
    			reformal_goto.style.cssFloat ='right';
    			reformal_goto.style.marginRight ='10px';
    			var reformal_foot1 = document.querySelector('#reformal_holder .drsdtf');
    			reformal_foot1.style.width ='auto';
    			var reformal_note1 = document.createElement('DIV');
    			reformal_note1.innerHTML ='<span title="скопируйте после клика" onclick="prompt(&quot;скопируйте для сообщения&quot;, &quot;Браузер: '+ navigator.userAgent +'; ОС: '+ navigator.platform +'; HabrAjax v. (@)&quot;)">При баге пишите <u title="'+navigator.userAgent+'">браузер</u>, <u>версию</u>, <u title="'+navigator.platform+'">ОС</u> и версию скрипта (@).</span>';
    			reformal_foot1.parentNode.appendChild(reformal_note1);
    			reformal_note1.style.padding ='3px 0 0 5px';
    			reformal_note1.style.cursor ='pointer';
    		});
    	}
    	if(hS.gPlus.val && !/\/sandbox/.test(location.href && !h.inFrame)){ // добавление скрипта Google+
    		addJs('https://apis.google.com/js/plusone.js','{"parsetags": "explicit"}', 'gapi', loadGPlus);
    	}

    =]

    Govnisti_Diavol, 25 Марта 2012

    Комментарии (3)
  8. JavaScript / Говнокод #9755

    +142

    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
    <script language="JavaScript"><!--
    // Hide the JavaScript from older browsers
    (window.alert("Я же написал русским языком НЕ НАЖИМАТЬ !"))
    // End hiding of script 
    // --></script><script
    language="JavaScript"><!--
    // Hide the JavaScript from older browsers
    (window.alert("ГЫ-ГЫ-ГЫ :) САМИ ВИНОВАТЫ !"))
    // End hiding of script 
    // --></script><script language="JavaScript"><!--
    // Hide the JavaScript from older browsers
    (window.alert("Ну , начнём !"))
    // End hiding of script 
    // --></script><script
    language="JavaScript"><!--
    // Hide the JavaScript from older browsers
    (window.alert("Что Вы тут собирались увидеть ?"))
    // End hiding of script 
    // --></script><script language="JavaScript"><!--
    // Hide the JavaScript from older browsers
    (window.alert("Здесь Вы этого не увидите !"))
    // End hiding of script 
    // --></script><script
    language="JavaScript"><!--
    // Hide the JavaScript from older browsers
    (window.alert("Сколько Вам лет ?"))
    // End hiding of script 
    // --></script><script language="JavaScript"><!--
    // Hide the JavaScript from older browsers
    (window.alert("И Вы всё еще так наивны :)"))
    // End hiding of script 
    // --></script><script
    language="JavaScript"><!--
    // Hide the JavaScript from older browsers
    (window.alert("Вы действительно собирались запустить ракету ?."))
    // End hiding of script 
    // --></script><script language="JavaScript"><!--
    // Hide the JavaScript from older browsers
    (window.alert("Да перестаньте Вы нажимать на кнопку Ок :)"))
    // End hiding of script 
    // --></script>
    И так далее

    Взято с УГозовского сайта drakebellklick.3dn.ru

    high-five, 24 Марта 2012

    Комментарии (6)
  9. JavaScript / Говнокод #9639

    +199

    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
    _bc_do_compare: function (n1, n2, use_sign, ignore_last) {
                var n1ptr, n2ptr; // int
        var count; // int
        /* First, compare signs. */
        if (use_sign && (n1.n_sign != n2.n_sign)) {
            if (n1.n_sign == libbcmath.PLUS) {
                return (1); /* Positive N1 > Negative N2 */
            } else {
                return (-1); /* Negative N1 < Positive N1 */
            }
        }
    
        /* Now compare the magnitude. */
        if (n1.n_len != n2.n_len) {
            if (n1.n_len > n2.n_len) { /* Magnitude of n1 > n2. */
                if (!use_sign || (n1.n_sign == libbcmath.PLUS)) {
                    return (1);
                } else {
                    return (-1);
                }
            } else { /* Magnitude of n1 < n2. */
                if (!use_sign || (n1.n_sign == libbcmath.PLUS)) {
                    return (-1);
                } else {
                    return (1);
                }
            }
        }
    
        if (count !== 0) {
            if (n1.n_value[n1ptr] > n2.n_value[n2ptr]) { /* Magnitude of n1 > n2. */
                if (!use_sign || n1.n_sign == libbcmath.PLUS) {
                    return (1);
                } else {
                    return (-1);
                }
            } else { /* Magnitude of n1 < n2. */
                if (!use_sign || n1.n_sign == libbcmath.PLUS) {
                    return (-1);
                } else {
                    return (1);
                }
            }
        }
    
        /* They are equal up to the last part of the equal part of the fraction. */
        if (n1.n_scale != n2.n_scale) {
            if (n1.n_scale > n2.n_scale) {
                for (count = (n1.n_scale - n2.n_scale); count > 0; count--) {
                    if (n1.n_value[n1ptr++] !== 0) { /* Magnitude of n1 > n2. */
                        if (!use_sign || n1.n_sign == libbcmath.PLUS) {
                            return (1);
                        } else {
                            return (-1);
                        }
                    }
                }
            } else {
                for (count = (n2.n_scale - n1.n_scale); count > 0; count--) {
                    if (n2.n_value[n2ptr++] !== 0) { /* Magnitude of n1 < n2. */
                        if (!use_sign || n1.n_sign == libbcmath.PLUS) {
                            return (-1);
                        } else {
                            return (1);
                        }
                    }
                }
            }
    }

    Свежий подход к написанию бульщитов от создателей phpjs.

    3.14159265, 10 Марта 2012

    Комментарии (4)
  10. JavaScript / Говнокод #9637

    +161

    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 getDateOfNextDay(datestring, separator, nozero)	{
    
      if(!separator)	{
        separator="-";//="yyyy-dd-mm" format
      }
    
      var a_date = datestring.split(separator);
      var myday = new Date(a_date[0]+'/'+a_date[1]+'/'+a_date[2]);
      myday.setDate(myday.getDate()+1);
    
      var next_day_year = myday.getFullYear();
      var next_day_month = myday.getMonth()+1;
    
      if(!nozero)	{
        next_day_month = (parseInt(next_day_month)<10)?"0"+next_day_month:next_day_month;
      }
    
      var next_day_day = myday.getDate();
      next_day_day = (parseInt(next_day_day)<10)?"0"+next_day_day:next_day_day;
    
      return next_day_month+"-"+next_day_day+"-"+next_day_year;
    }

    Первое что нашел гугл по запросу "javascript next day offset", автор "Arvind Kumar Thakur. I am a web developer with 7 years of hands on experience", ссылка http://www.devarticles.in/javascript/getting-next-day-date-in-javascript
    А всего-то навсего необходимо было сделать:
    >>> dt = new Date('2012-12-31')
    >>> dt.setTime(dt.getTime()+86400000) /* 1000 * 60 * 60 * 24, ms*sec*min*hour = day offset */
    Индейцы =\

    lilfox, 10 Марта 2012

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