1. Лучший говнокод

    В номинации:
    За время:
  2. PHP / Говнокод #3337

    +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
    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
    <?php
    set_time_limit(0);
    Error_Reporting(E_ALL & ~E_NOTICE);
    
    $mail = "@rambler.ru"; //e-mail или логин от контакта
    $pass = ""; //пароль от контакта
    $uids = "3,5,7,8,10,15,1955,54665,233254"; //кого проверяем
    
    function get($link,$cookie){ 
    
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$link); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch, CURLOPT_COOKIE, $cookie);
    
    $otvet = curl_exec($ch); 
    curl_close($ch); 
    return $otvet; 
    }
    
    $aut=file_get_contents('http://login.vk.com/?act=login&email='.urlencode($mail).'&pass='.urlencode($pass).'&expire=&vk=');
    preg_match("/id=\'s\' value=\'(.*?)\'/",$aut,$sid);
    $cookie="remixsid=$sid[1];";
    
    $res=get("http://vkontakte.ru/feed2.php",$cookie);
    $feed=json_decode($res);
    $id=$feed->user->id;
    
    $count = substr_count($uids,",");
    $count = $count+1;
    
    $sig=md5(''.$id.'api_id=35569fields=has_mobileformat=JSONmethod=getProfilesuids='.$uids.'v=2.0SRkM2ws8NQ');
    
    $res=get("http://api.vkontakte.ru/api.php?api_id=35569&fields=has_mobile&format=JSON&method=getProfiles&uids=$uids&v=2.0&sig=$sig",$cookie);
    preg_match_all("/uid\":(.*?),\"first_name\":\"(.*?)\",\"last_name\":\"(.*?)\",\"has_mobile\":(.*?)\}/",$res,$info);
    
    for($i=0;$i<$count;$i) { 
    
    $qwe=$i++;
    
    $uidx=$info[1][$qwe];
    $first_name=$info[2][$qwe];
    $last_name=$info[3][$qwe];
    $has_mobile=$info[4][$qwe];
    
    print iconv('utf-8', '866', "\n--------id$uidx: $first_name $last_name [$has_mobile]--------\n\n\n"); }
    
    ?>

    http://volk.hx0.ru

    r00t, 27 Мая 2010

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

    +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
    // Для получения имени компьютера напишите следующий код:
    unsigned long Size = MAX_COMPUTERNAME_LENGTH + 1;
    char *Buffer = new char[Size];
    GetComputerName(Buffer, &Size);
    // после выполнения данного кода имя компьютера будет
    // содержаться в Buffer. После того, как Buffer перестанет быть
    // вам нужным, не забудьте вызвать delete [] Buffer.
    
    /*-------------------*/
    
    //Изменение имени компьютера
    
    // для изменения имени компьютера воспользуйтесь функцией
    // SetComputerName
    SetComputerName("НОВОЕ_ИМЯ_КОМПЬЮТЕРА");
    // не забудьте перезагрузить машину

    Имя компьютера - получение и изминение в C++ Builder
    (c) webkill http://webkill.ru/content/?id=508

    This is obvious, 26 Мая 2010

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

    +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
    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
    /**********************************************************************
    		*  Connect to DB - over-ridden by specific DB class
    		*/
    
    		function connect()
    		{
    			die(EZSQL_CORE_ERROR);
    		}
    
    		/**********************************************************************
    		*  Select DB - over-ridden by specific DB class
    		*/
    
    		function select()
    		{
    			die(EZSQL_CORE_ERROR);
    		}
    
    		/**********************************************************************
    		*  Basic Query	- over-ridden by specific DB class
    		*/
    
    		function query()
    		{
    			die(EZSQL_CORE_ERROR);
    		}
    
    		/**********************************************************************
    		*  Format a string correctly for safe insert - over-ridden by specific
    		*  DB class
    		*/
    
    		function escape()
    		{
    			die(EZSQL_CORE_ERROR);
    		}
    
    		/**********************************************************************
    		*  Return database specific system date syntax
    		*  i.e. Oracle: SYSDATE Mysql: NOW()
    		*/
    
    		function sysdate()
    		{
    			die(EZSQL_CORE_ERROR);
    		}

    Продвинутый способ создания абстрактных методов. Это кагбе абстрактный класс, от которого наследуются БД-специфичные классы. Затем какая вам БД нужна, под такую руками и создавайте экземпляр нужного класса, "фабрикой" даже и не пахнет.
    Зовётся сие чудо ezSQL. Используется в NetCat. Ладно хоть не сами наложили (налажали?), но всё ж головой не подумали, когда брали.

    telnet, 26 Мая 2010

    Комментарии (15)
  5. PHP / Говнокод #3303

    +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
    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
    // если IP в файле есть, выводим сообщение с уведомлением
    if ($file[$i]===$ip."\r\n"){
    	echo 'Вы уже голосовали. Но спасибо, что попытались.<br>';
    	break;
    	// если IP нет, тогда считаем рейтинг и записываем IP в файл
    } elseif ($file[$i]!=$ip."\r\n") {
    	// ********* СЧИТАЕМ РЕЙТИНГ *********
    	// открываем файл с рейтингом
    	$file_open=fopen("rate.txt", "a+");
    	$file_read=fgets($file_open);
    	// разбиваем данные по спецсимволу ':'
    	$dan=explode(":",$file_read);
    	// первое значение - сумма всех оценок, второе - кол-во проголосовавших юзеров
    	// добавляем к сумме оценок - полученную новую оценку
    	// добавляем к сумме юзеров - 1 человека
    	if ($_POST['rating_val']>=1 && $_POST['rating_val']<=5){
    	$r=$_POST['rating_val'];
    	$ocenka=$dan[0]+$r;
    	$users=$dan[1]+1;
    	$write=$ocenka.':'.$users;
    	ftruncate ($file_open, 0);
    	fwrite($file_open, $write);
    	}
    	// рейтинг считаем по формуле: (сумма оценок + текущая оценка) / (кол-во юзеров + 1 юзер)
    	$rating=substr(($dan[0]+$r) / ($dan[1]+1),0,3);
    	echo 'Ваш рейтинг: '.$rating.'<br>
    	Всего голосов: '.$users.'<br>';
    	// закрываем файл с рейтингом
    	fclose($file_open);
    	// ************************************
    	fwrite($open_ip, $ip."\r\n");
    	echo 'Ваш голос учтен. Спасибо.<br>'; 
    	break;
    } else {
    	echo 'Странно. Вопреки всякой логике, произошла ошибка, которая появиться не могла.<br>
    	Пожалуйста, <a href=mail.php>напишите нам письмо</a> и мы обязательно разберемся.';
    }

    Проверка в скриптике друга. Смотрим самый внешний IF, порадовала ветка else :)

    arsen, 24 Мая 2010

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    if (!$defaults && !is_null($defaults))
    {
      $this->form->setDefaults($defaults->toArray());
    }

    Все три строчки, зато какие! :)

    kovel, 17 Мая 2010

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

    +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
    // ...
    // xcrement - (in|de)crement
    // ...
    bool parse( . . . , int xcrement, . . . )
    {
       ...
       while ( ... )
       {
          ...
          index += xcrement;
       }
       ...
    }

    k06a, 14 Мая 2010

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

    +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
    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
    if ($key>0)
    {
    if (strpos ($payload['from'],'conference') > 1)
    {
    if (strlen ($payload['role']) >1 )
    {
    if (strlen ($payload['jid']) >1 )
    {
    if (strpos ($payload['jid'],'@') > 1)
    {
    $this->role_st[$key] = $payload['from'];
    $this->role_st[$key+1] = $payload['jid'];
    $this->role_st[$key+2] = $payload['role'];
    }
    }
    }
    }
    }
    else
    {
    if (strpos ($payload['from'],'conference') > 1)
    {
    if (strlen ($payload['role']) >1 )
    {
    if (strlen ($payload['jid']) >1 )
    {
    if (strpos ($payload['jid'],'@') > 1)
    {
    array_push ($this->role_st, $payload['from']);
    array_push ($this->role_st, $payload['jid']);
    array_push ($this->role_st, $payload['role']);
    }
    }
    }
    }
    }

    Йа матрешко

    Безымянный, 23 Апреля 2010

    Комментарии (8)
  9. Си / Говнокод #3095

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //Русская рулетка. 7 газовых, один боевой.
     act_rx_session_104(&apdu);
    //      printf ("recv I\n");
    result =        (*((COLLECTORHDLR*)((collector_cfg.pFILLHDL + (unsigned char)apdu.asdu.type)->pHandler)))
    ((HEAD_ASDU_60870*) &apdu.asdu);

    Как то писал под OS Rtems 4.6 протокол 60870-5-104
    эта строчка специально придумывалась как гавно, активизируещее механизм разбора пакета и запуска других механизмов.

    ursus, 23 Апреля 2010

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

    +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
    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
    <?php
        public function run()
        {
            $db = Registry::get('Db');
    
            $db->transaction(Db_Database::START);
    
            $success = $db->query()->update()
                ->table('forum_topics')
                ->set('PostsCount = PostsCount - 1')
                ->set('LastPostID = ('
                    . $db->query()
                        ->select()->fields('ID')
                        ->table('forum_posts')->order('ID', 1) // DESC
                        ->where('TopicID = %d', $this->post->topic->id)
                        ->limit(1)->compile()->getQuery()
                    . ')')
                ->set('FirstPostID = ('
                    . $db->query()
                        ->select()->fields('ID')
                        ->table('forum_posts')->order('ID')
                        ->where('TopicID = %d', $this->post->topic->id)
                        ->limit(1)->compile()->getQuery()
                    . ')')
                ->where('ID = %d', $this->post->topic->id)
                ->compile()->run()->success()
            && $db->query()->update()
                ->table('forum_cats')
                ->set('PostsCount = PostsCount - 1')
                ->set('LastTopicID = ('
                    . $db->query()
                        ->select()->fields('ID')
                        ->table('forum_topics')->order('LastPostID', 1) // DESC
                        ->where('CatID = %d', $this->post->topic->category->id)
                        ->limit(1)->compile()->getQuery()
                    . ')')
                ->where('ID = %d', $this->post->topic->category->id)
                ->compile()->run()->success()
            && $db->query()->update()
                ->table('forum_posts')
                ->set('Deleted = 1')
                ->where('ID = %d', $this->post->id)
                ->compile()->run()->success();
            $db->transaction($success ? Db_Database::COMMIT : Db_Database::ROLLBACK);
            return $success;
        }

    Вот такая вот жесть бывает. Изменение счетчиков на форуме (денормализация) с использованием альфа-версии кверибилдера. по-моему — устрашающе)

    Shock, 13 Октября 2009

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function doSomething(){
    
      static firstTime = true;
    
      if (firstTime){
        //Этот код исполнится только при первом обращении к функции
      }
    //Этот код будет выполнятся при каждом обращении к функции
    }

    Пример взят из книги (дословно)...

    Bartelby, 29 Августа 2009

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