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

    +5

    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
    <?php
    error_reporting(E_ALL);
    function anti_hacker($txt){
    $txt=str_replace("|","I",$txt);
    $txt=str_replace("../",",,/",$txt);
    $txt=str_replace("||","I",$txt);
    $txt=htmlspecialchars($txt);                  
    $txt=str_replace("\"","&#34;",$txt);
    $txt=str_replace("/\\\$/","&#36;",$txt);
    $txt=str_replace("$","&#36;",$txt);          
    $txt=str_replace("\\","&#92;",$txt);
    $txt=str_replace("`","",$txt);  
    $txt=str_replace("^","",$txt);
    $txt=str_replace("%","&#37;",$txt);
    $txt=stripslashes(trim($txt));
    return $txt;}
    if(isset($_GET)){foreach($_GET as $key=>$value){$_GET[$key]=anti_hacker($value);}}
    if(isset($_POST)){foreach($_POST as $key=>$value){$_POST[$key]=anti_hacker($value);}}
    if(isset($_SESSION)){foreach($_SESSION as $key=>$value){$_SESSION[$key]=anti_hacker($value);}}
    if(isset($_COOKIE)){foreach($_COOKIE as $key=>$value){$_COOKIE[$key]=anti_hacker($value);}}
    ?>

    antihacker

    eskrano, 23 Декабря 2016

    Комментарии (20)
  2. C# / Говнокод #21890

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private static Properties[] GetProperty(Properties[] collection, string property, string userName)
    {
        if (collection.Contains(property))
        {
            return collection[property];
        }
        else
        {
            throw new ArgumentException($"Property '{property}' for user '{userName}' was not found");
        }
    }

    А писали-то неглупые вроде люди.

    homk, 23 Декабря 2016

    Комментарии (25)
  3. Java / Говнокод #21887

    +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
    // альтернатива регулярочке "^[\\da-fA-F]{8}-([\\da-fA-F]{4}-){3}[\\da-fA-F]{12}$"
    public static boolean isValid(String uuid) {
        if (uuid.length() != 36) {
            return false;
        }
    
        for (int i = 0; i < 36; ++i) {
            char c = uuid.charAt(i);
    
            if ((0x842100 & (1 << i)) != 0) {
                if (c != '-') {
                    return false;
                }
            } else if (c < '0' || c > 'f' || ((0x7e0000007e03ffL & (1 << (c - '0'))) == 0)) {
                return false;
            }
        }
    
        return true;
    }

    shomeser, 22 Декабря 2016

    Комментарии (39)
  4. C# / Говнокод #21886

    +5

    1. 1
    var endOfMonth = new DateTime(year, month + 1, 1).AddDays(-1);

    himluver, 22 Декабря 2016

    Комментарии (8)
  5. C# / Говнокод #21885

    +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
    class Program
        {
            static void Main()
            {
                object obj = Magic();
                if (obj as B != null)
                    ((B)obj).F();
                else ((C)obj).F();
                Console.ReadKey();
            }
     
            static object Magic()
            {
                if (new Random().Next(0, 10) < 5)
                    return new B();
                else return new C();
            }
        }
     
        abstract class A 
        {
            public virtual void F() { }
        }
        class B : A 
        {
            public override void F()
            {
                Console.WriteLine("B");
            }    
        }
        class C : A 
        {
            public override void F()
            {
                Console.WriteLine("C");
            }
        }

    Новейшие концепции реализации полиморфизма в C#

    gvt, 22 Декабря 2016

    Комментарии (14)
  6. C++ / Говнокод #21884

    +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
    #include <iostream>
    using namespace std;
    
    #include <chrono>
    
    double curr_time_sec()
    {
        return std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()) .count() / 1000.0f;
    }
    
    int main()
    {
       double last_time_sec(curr_time_sec());
       for(int i=0; i<1000; ++i)
       {
          auto time_sec(curr_time_sec());
          cout << "time step " <<   time_sec - last_time_sec  << endl;
          last_time_sec = time_sec;
       }
            
       cout << "\n\n\n\n\n\n\n\n" << endl;
       return 0;
    }

    Просто получи отрицательный delta_time, и наслаждайся зависшим Bullet.
    Исправляется удалением всего одной буквы, догадайся где.

    beldiv, 22 Декабря 2016

    Комментарии (11)
  7. Pascal / Говнокод #21883

    +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
    dep_id:=-1;
    next_day:=1;
    cds.First;
    while not (cds.Eof) do
    begin
      if (dep_id <> cds.FieldByName('DEP_ID').AsInteger) then
      begin
        dep_id := cds.FieldByName('DEP_ID').AsInteger;
        //переходим на новую страницу, печатаем шапку
        //...
        
        row:=7;
        next_day :=1;
      end;
      if (DS_Parametes.FieldByName('DATE').AsString <> FieldByName('RS_DATE').AsString) and (next_day <> 5) then
             next_day := 2;
      if (next_day < 3) then
      begin
        //Печатаем шапку дня 
        //...
        if (DS_Parametes.FieldByName('DATE').AsString <> cds.FieldByName('RS_DATE').AsString)  then
        begin
          WS.Cells[Row,01]:= 'Завтра, '+ cds.FieldByName('RS_DATE').AsString;
          next_day :=5;
        end
        else
        begin
          WS.Cells[Row,01]:= cds.FieldByName('RS_DATE').AsString;
          next_day :=4;
        end;
        inc(row);
      end;
      //Ну и дальше печатаем строчки таблицы
      //...
      inc(row);
      cds.next;
      
    end;

    next_day := 4

    tucvbif, 22 Декабря 2016

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

    +1

    1. 1
    exports.connect = function(/* [port, host], options, cb */) {

    Костыли могут быть красивыми (Исходники nodejs)

    sevenflash, 21 Декабря 2016

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $re = "/(\\d+)\\s?(\\S?)/i";
    preg_match($re, get_field('tour_price'), $price);
    
    $price = $price[1] ?: 0;
    $currency = $price[2] ?: '$';

    Как разобрать строку 180$ и получить цену отдельно а знак валюты отдельно?
    Конечно же как описано выше! И цены же конечно не могут ВДРУГ стать трехзначными или ОБОЖЕ!ЧТОЭТО! заканчиваться не на 0!

    omcg33, 21 Декабря 2016

    Комментарии (3)
  10. 1C / Говнокод #21880

    +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
    Количество = Окр(Строка.Количество,2);
    //
    Если СтрЧислоВхождений(Количество,",")=0 Тогда
    	Если СтрДлина(Количество)=1 Тогда
    		Количество = "00"+количество+"00";
    	ИначеЕсли СтрДлина(Количество)=2 Тогда
    		Количество = "0"+количество+"00";
    	ИначеЕсли СтрДлина(Количество)=3 Тогда
    		Количество = количество+"00";
    	КонецЕсли;
    ИначеЕсли СтрЧислоВхождений(Количество,",")=1 Тогда
    	ДлиннаСтроки = СтрДлина(Количество);
    	ПозТочки = Найти(Количество,",");
    	Если ПозТочки = 2 и ДлиннаСтроки = 3 Тогда
    		Количество ="00"+Количество+"0";
    	ИначеЕсли ПозТочки = 3 и ДлиннаСтроки = 4 Тогда
    		Количество = "0"+Количество+"0";
    	ИначеЕсли ПозТочки = 4 и ДлиннаСтроки = 5 Тогда
    		Количество = Количество+"0";
    	ИначеЕсли ПозТочки = 2 и ДлиннаСтроки = 4 Тогда
    		Количество = "00"+Количество;
    	ИначеЕсли ПозТочки = 3 и ДлиннаСтроки = 5 Тогда
    		Количество = "0"+Количество;
    	ИначеЕсли ПозТочки = 4 и ДлиннаСтроки = 6 Тогда
    		Количество = Количество;
    	ИначеЕсли ПозТочки = 4 и ДлиннаСтроки = 4 Тогда
    		Количество = Количество+"00";
    	КонецЕсли;
    КонецЕсли;
    Если СтрЧислоВхождений(Количество,",")=1 Тогда
    	Количество = СтрЗаменить(Количество,",","");
    КонецЕсли;

    Нужно было получить Количество типа 5 CHAR (NUM)
    Измерение в литрах и штуках
    Пример "00200" - 2 шт. "00650" - 6.5 литра
    Например можно так:
    Формат(Строка.Количество*100,"ЧЦ=5; ЧДЦ=0; ЧВН=; ЧГ=")

    105_306330_ru, 21 Декабря 2016

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