1. Pascal / Говнокод #16869

    +93

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    if (CurrentPlugin=nil) and (CurrentPlugin.FileName<>'InfoRTF.dll') and (CurrentPLugin.FileName<>'Preview.dll')  then begin
        if not ServerStoped then begin
            uPluginControl.StopSession();
        end;
        if ClientLoaded then begin
            ClientLoaded:=false;
            StartDemo();
        end;
    end;

    Смеяться на первой же строчке.
    Привет Алексу.

    hdkeeper, 17 Октября 2014

    Комментарии (7)
  2. SQL / Говнокод #16868

    −859

    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
    create table test(
      id integer primary key auto_increment,
      d datetime not null
    );
    
    insert into test(id) values (1);
    
    -- а сейчас я покажу вам особую уличную магию
    select *, d is null, d is not null from test;
    
    select *, d is null, d is not null from test
    where d is not null;
    
    select *, d is null, d is not null from test
    where d is null;  -- WTF?!
    
    select *, d is null, d is not null from test
    where d is not null and d is null; -- WTF?!

    Все 4 select'а выводят одинаковый результат... MySQL такой MySQL...

    P.S. Вставка всякой херни вместо вывода ошибки лечится добавлением STRICT_ALL_TABLES в sql_mode. А вот where с нулевой датой не лечится, видимо, это баг движка.

    bormand, 17 Октября 2014

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

    +53

    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
    template <typename T, typename Mid, int N>
    	struct UselessWrapperFillMid
    	{
    		inline static void FillMid (T* t, Mid mid)
    		{
    			mid(t[0], t[N], t[N/2]);
    			UselessWrapperFillMid<T,Mid,N/2>::FillMid (&t[0]  , mid);
    			UselessWrapperFillMid<T,Mid,N/2>::FillMid (&t[N/2], mid);
    		}
    	};
    	
    	template <typename T, typename Mid> 
    	struct UselessWrapperFillMid <T, Mid, 1>
    	{
    		inline static void FillMid (T* t, Mid mid)
    		{
    			(void)t;
    			(void)mid;
    		}
    	};

    Бесит такой понос вместо нормальной рекурсии.
    Но иначе оно не развернётся в последовательность инструкций без ветвлений и вызовов.

    TarasB, 16 Октября 2014

    Комментарии (33)
  4. PHP / Говнокод #16866

    +157

    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
    class ModelCheckoutOrder extends Model { 
     public function addOrder($data) {
        $data['login']=md5(rand(0,100).rand(0,100).rand(0,100).rand(0,100).rand(0,100).rand(0,100).rand(0,100).rand(0,100).rand(0,100));
      $this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET login='".$data['login']."',invoice_prefix = '" . $this->db->escape($data['invoice_prefix']) . "', store_id = '" . (int)$data['store_id'] . "', store_name = '" . $this->db->escape($data['store_name']) . "', store_url = '" . $this->db->escape($data['store_url']) . "', customer_id = '" . (int)$data['customer_id'] . "', customer_group_id = '" . (int)$data['customer_group_id'] . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', fax = '" . $this->db->escape($data['fax']) . "', payment_firstname = '" . $this->db->escape($data['payment_firstname']) . "', payment_lastname = '" . $this->db->escape($data['payment_lastname']) . "', payment_company = '" . $this->db->escape($data['payment_company']) . "', payment_company_id = '" . $this->db->escape($data['payment_company_id']) . "', payment_tax_id = '" . $this->db->escape($data['payment_tax_id']) . "', payment_address_1 = '" . $this->db->escape($data['payment_address_1']) . "', payment_address_2 = '" . $this->db->escape($data['payment_address_2']) . "', payment_city = '" . $this->db->escape($data['payment_city']) . "', payment_postcode = '" . $this->db->escape($data['payment_postcode']) . "', payment_country = '" . $this->db->escape($data['payment_country']) . "', payment_country_id = '" . (int)$data['payment_country_id'] . "', payment_zone = '" . $this->db->escape($data['payment_zone']) . "', payment_zone_id = '" . (int)$data['payment_zone_id'] . "', payment_address_format = '" . $this->db->escape($data['payment_address_format']) . "', payment_method = '" . $this->db->escape($data['payment_method']) . "', payment_code = '" . $this->db->escape($data['payment_code']) . "', shipping_firstname = '" . $this->db->escape($data['shipping_firstname']) . "', shipping_lastname = '" . $this->db->escape($data['shipping_lastname']) . "', shipping_company = '" . $this->db->escape($data['shipping_company']) . "', shipping_address_1 = '" . $this->db->escape($data['shipping_address_1']) . "', shipping_address_2 = '" . $this->db->escape($data['shipping_address_2']) . "', shipping_city = '" . $this->db->escape($data['shipping_city']) . "', shipping_postcode = '" . $this->db->escape($data['shipping_postcode']) . "', shipping_country = '" . $this->db->escape($data['shipping_country']) . "', shipping_country_id = '" . (int)$data['shipping_country_id'] . "', shipping_zone = '" . $this->db->escape($data['shipping_zone']) . "', shipping_zone_id = '" . (int)$data['shipping_zone_id'] . "', shipping_address_format = '" . $this->db->escape($data['shipping_address_format']) . "', shipping_method = '" . $this->db->escape($data['shipping_method']) . "', shipping_code = '" . $this->db->escape($data['shipping_code']) . "', comment = '" . $this->db->escape($data['comment']) . "', total = '" . (float)$data['total'] . "', affiliate_id = '" . (int)$data['affiliate_id'] . "', commission = '" . (float)$data['commission'] . "', language_id = '" . (int)$data['language_id'] . "', currency_id = '" . (int)$data['currency_id'] . "', currency_code = '" . $this->db->escape($data['currency_code']) . "', currency_value = '" . (float)$data['currency_value'] . "', ip = '" . $this->db->escape($data['ip']) . "', forwarded_ip = '" .  $this->db->escape($data['forwarded_ip']) . "', user_agent = '" . $this->db->escape($data['user_agent']) . "', accept_language = '" . $this->db->escape($data['accept_language']) . "', date_added = NOW(), date_modified = NOW()");
    
      $order_id = $this->db->getLastId();
    
      foreach ($data['products'] as $product) { 
       $this->db->query("INSERT INTO " . DB_PREFIX . "order_product SET order_id = '" . (int)$order_id . "', product_id = '" . (int)$product['product_id'] . "', name = '" . $this->db->escape($product['name']) . "', model = '" . $this->db->escape($product['model']) . "', quantity = '" . (int)$product['quantity'] . "', price = '" . (float)$product['price'] . "', total = '" . (float)$product['total'] . "', tax = '" . (float)$product['tax'] . "', reward = '" . (int)$product['reward'] . "'");
     
       $order_product_id = $this->db->getLastId();
    
       foreach ($product['option'] as $option) {
        $this->db->query("INSERT INTO " . DB_PREFIX . "order_option SET order_id = '" . (int)$order_id . "', order_product_id = '" . (int)$order_product_id . "', product_option_id = '" . (int)$option['product_option_id'] . "', product_option_value_id = '" . (int)$option['product_option_value_id'] . "', name = '" . $this->db->escape($option['name']) . "', `value` = '" . $this->db->escape($option['value']) . "', `type` = '" . $this->db->escape($option['type']) . "'");
       }
        
       foreach ($product['download'] as $download) {
        $this->db->query("INSERT INTO " . DB_PREFIX . "order_download SET order_id = '" . (int)$order_id . "', order_product_id = '" . (int)$order_product_id . "', name = '" . $this->db->escape($download['name']) . "', filename = '" . $this->db->escape($download['filename']) . "', mask = '" . $this->db->escape($download['mask']) . "', remaining = '" . (int)($download['remaining'] * $product['quantity']) . "'");
       } 
      }

    И это известный движок интернет-магазина OpenCart???
    \catalog\model\checkout\order.php

    govnokoder2, 16 Октября 2014

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

    +55

    1. 1
    2. 2
    // Извиняюсь, но кода не будет, только ссылка.
    // https://github.com/fruxo/turbobadger

    >> With compilers supporting C+ + 11
    Вот лично против либы ничего не имею - годная получилась. Но..
    Аффтар заучил nullptr, и считает что теперь он использует c++11.
    Епт, да эта либа спокойно собирается под vc2008, стоит только задефайнить nullptr как 0.

    Pythoner, 16 Октября 2014

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

    +53

    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
    class CClass
    {
    //...
       boost::shared_ptr<CTestData> mpTestData;
    //...
    };
    
    void CClass::setTestData(boost::shared_ptr<CTestData> pTestData)
    {
       if(pTestData.use_count() == 0)
       {
          mpTestData.reset();
       }
       else
       {
          mpTestData = pTestData;
       }
    }

    hedrok, 16 Октября 2014

    Комментарии (3)
  7. PHP / Говнокод #16860

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function viplogin() {
        global $lang, $userrec;
        $ret="<div class=viplogin>".array_pop($var1=mqfa("select id, mixtxt$lang from txts where name='viplogin'")).(!INADMIN?"":"<input style=\"width:35px;\" type=button class=\"changebtn\" value=\"Edit 721\" onclick=\"window.open('edit.php?table=txts&id=$var1[id]&&'+Math.random(),'_blank','toolbar=0, scrollbars=1, resizable=1, width=653, height=620');\">")."</div>".($userrec["local"] || $userrec["isadmin"]?"<a href=# onclick=\"window.open('txted.php?lang=$lang&id=$var1[id]','_blank','width=700, height=500')\">edit</a>":"");
        $ret.="<center><a href=\"".echolink("lang=$lang&page=buyvip")."\">".echoword2("buyvip")."</a></center>";
        return $ret;
    }

    как правильно логинить важных пользователей

    afwbkbc, 15 Октября 2014

    Комментарии (6)
  8. PHP / Говнокод #16859

    +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
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    function mydqs($s="") {
        global $dellink,$origqs;
        $dellink="";
        if (!$s) $s=$_SERVER["QUERY_STRING"];
        $key="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890 &=";
        $orig="qXbn BrZ7tiJz1Hva4mx0KCY6hfV&LGAejIO=TsdgF5E3uPwkp8NScyWlRQo2MD9U";
        $i=0;
        $len=5;
        $ret="";
        $s=urldecode($s);
        while ($i<strlen($s)) {
            $i2=0;
            $retchar=$s[$i];
            while ($i2<strlen($orig)) {
                if ($s[$i]==$orig[$i2]) {
                    $pos=$i2-$i%$len;
                    if ($pos<0) $pos+=strlen($orig);
                    $retchar=$key[$pos];
                }
                $i2++;
            }
            $i++;
            $ret.=$retchar;
        }
        $pcs=explode("&",$ret);
        foreach ($pcs as $k=>$v) {
            if ($v=="") continue;
            $vs=explode("=",$v);
            $vs[1]=str_replace("'","\\'",$vs[1]);
            @eval("global \$$vs[0];\$$vs[0]='$vs[1]';");
            if (substr($vs[0],0,1)!="_") $dellink.="&$vs[0]=$vs[1]";
        }
        $origqs=$ret;
        return $ret;
    }

    что делает этот метод?

    afwbkbc, 15 Октября 2014

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

    +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
    public static function getCurrentRawDate($yesterday = false) {
    
            if ($yesterday) {
                $date = strtotime("-1 days");
            } else {
                $date = time();
            }
    
            $raw = explode("-", date("Y-m-d", $date));
    
            list($year, $month, $day) = $raw;
    
            return array(
                "year" => $year,
                "month" => $month,
                "day" => $day
            );
        }

    Самое очевидное поведение функции

    deivas, 15 Октября 2014

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    /* Код невлазит, т.к. весит около 1MB и происходит 413 Request Entity Too Large .
    Читайте по ссылке - http://m.uploadedit.com/b041/1413367407745.txt
    Код универсален, включает в себя PHP, HTML, CSS, JS, SQL и, возможно, силу земли.
    Полностью работоспособен.
    Наслаждайтесь.
    */

    см. внутри

    afwbkbc, 15 Октября 2014

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