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

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

    +159

    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
    class MysqlResultSet implements Iterator{
      private $strSQL;
      private $databasename;
      private $connection;
      private $result;
      private $valid;
      private $currentrow;
      private $key;
      const INDETERMINATE_TOTAL_NUMBER = 5001;
      const UNNECESSARY_SQL_CALC_FOUND_ROWS = 5002;
      const NOT_SELECT_QUERY = 5003;
      public function __construct( $strSQL, $databasename, $connection ){
        $this->strSQL = $strSQL;
        $this->connection = $connection;
        $this->databasename = $databasename;
        if(!mysql_selectdb($databasename, $connection)){
          throw new MySQLException(mysql_error(), mysql_errno());
        }
        if(!$this->result = mysql_query($strSQL, $connection)){
          throw new MySQLException(mysql_error(), mysql_errno());
        }
        if (stristr($strSQL,"SQL_CALC_FOUND_ROWS")){
          $msg = "No need to use SQL_CALC_FOUND_ROWS.";
          throw new MySQLException($msg, self::UNNECESSARY_SQL_CALC_FOUND_ROWS);
        }
        $this->rewind();
      }
      public function __destruct(){
        $this->close();
      }
      public function __call($name, $args){  
        $args = null;
        $name = "mysql_". $name;
        if(function_exists($name)){
          return call_user_func_array($name, $args);      
        }  
      }
      # Ну и так далее...

    31-38 строки: Не понятно, зачем нужно было вообще этот класс писать?!
    32-ая строка вообще сногсшибательна... (P.S. Из одной book по ООП в PHP5)

    dwinner, 15 Ноября 2010

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

    +159

    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
    int makedata(int id,int part,void *d,int datalen,void *buf)
    {
        //packet struct :
        // code = short int, lenght = shotr int, id = int, numofpart = int, data = 1024
    
        int packlen = sizeof(short int)*2 + sizeof(int)*2 + datalen;
        char *tbuf = new char [packlen];
        char* tbufptr = tbuf;
        *((short int *)tbufptr) = data;  //first field
        (short int *)tbufptr++;
        *((short int *)tbufptr) = packlen;  //second field
        (short int *)tbufptr++;
        *((int *)tbufptr) = id;
        (int *)tbufptr++;
        *((int *)tbufptr) = part;
        (int *)tbufptr++;
        *((short int *)tbufptr) = datalen;
        (short int *)tbufptr++;
        memcpy((void*)tbufptr,d,datalen);
    
        buf=tbuf;
        return packlen;
    }
    
    fileinfo* getask(void *b)
    {
        fileinfo *fi = new fileinfo();
        char *bufptr = (char*)b;
        (short int*)bufptr++;
        short int plen = *((short int*)bufptr);
        (short int*)bufptr++;
        fi->numofpart = *((int*)bufptr);
        (int*)bufptr++;
        fi->filelenght = *((int*)bufptr);
        (int*)bufptr++;
        int filelen = plen-(bufptr-(char*)b);
        fi->filename = new char[filelen];
        strncpy(fi->filename,bufptr,filelen);
    
        return fi;
    }

    Вместо того, что бы воспользоваться структурой, забиваем всё ручками.

    KoirN, 14 Ноября 2010

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $vars = array();
    if(isAccess($down['view'])) {
    	$url = '<a href="index.php?mod=load&amp;op=down&amp;id='.$id.'" target="_blank">Скачать</a>';
    } else {
    	$url = 'Файл недоступен гостям';
    }
    $vars['url'] = $url;

    Мартин, 29 Октября 2010

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

    +159

    1. 1
    <a href="<?=$res["URL"]?>" style="font-size: <?=$res["FONT_SIZE"]?>px; color: #<?=$res["COLOR"]?>;px" rel="nofollow"><?=$res["NAME"]?></a>

    Битрикс, компонент "Облако тэгов"
    Последний "px" в тэге style явно лишний.

    hdkeeper, 22 Октября 2010

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    //функция конвертации времени в таймстамп, добавлено 08.07.2010
    function convertDate($date){
    	$dateArr = explode(".", $date);
    	$date = mktime(0,0,0,$dateArr[1],$dateArr[0],$dateArr[2]);
    	return $date;
    	
    	// 21.10.2010: а чем strtotime не устраивает?
    }

    И чем strtotime() не устроило, не понятно.

    getrix, 21 Октября 2010

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

    +159

    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
    class Request_BrowserDetector
    {
      public static function singleton()
      {
        if (null === self::$_instance)
        {
          self::$_instance = new self;
        }
        
        return self::$_instance;
      }
      
      protected static $_instance = null;
    
      public function __construct()
      {
        $this->_sigs = Application::singleton()->cfg('request.browser.signatures');
      }
      
      public function detect($str)
      {
        if (isset($this->_cache[$str]))
        {
          $out = $this->_cache[$str];
        }
        else
        {
          $notFound = true;
          
          foreach ($this->_sigs as $k => $v)
          {
            if (false !== strpos($str, $k))
            {
              $out = $v;
              $notFound = false;
              break;
            }
          }
          
          if ($notFound)
          {
            $out = $this->_escape($str);
          }
          
          $this->_cache[$str] = $out;
        }
        
        return $out;
      }
      
      protected function _escape($str)
      {
        return mysql_real_escape_string($str);
      }
      
      protected $_sigs, $_cache = array();
    }

    синглетон такой, синглетон

    seonull, 20 Октября 2010

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

    +159

    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
    function randomPassword($length = 8, $seed = '') {
    	$password = "";
    	$possible = "0123456789";
    	$i = 0;
    	mt_srand(($seed == '') ? rand() : $seed);
    	while ($i < $length) {
    		$char = substr($possible, mt_rand(0, strlen($possible) - 1), 1);
    		if (!strstr($password, $char)) {
    			$password .= $char;
    			$i++;
    		}
    	}
    	return $password;
    }

    думаю пора создавать отдельный радел на сайте посвящённый высерам призванным генерировать пароли

    DrFreez, 18 Октября 2010

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

    +159

    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
    // Функция для подключения к БД
    
    // *** параметры коннекта ***
    ErrorsOff();
    $this->DbAccess = @mysql_connect($this->Server, $this->User, $this->Password);
    ErrorsOn();
    if($this->DbAccess){
    	$this->Connected = true;
    	@mysql_query("set character_set_client='cp1251'");
    	@mysql_query("set character_set_results='cp1251'");
    	@mysql_query("set collation_connection='cp1251_general_ci'");
    	$this->Version = mysql_get_server_info();
    	if($dbname != "" && @mysql_select_db($dbname, $this->DbAccess)){
    		// *** отмечаем текущую базу ***
    	}
    }else{
    	$this->Error('Не удалось подключиться к серверу!');
    	$this->MySQLError();
    	return false;
    }
    $this->Good();
    return true;

    Мартин, 12 Октября 2010

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

    +159

    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
    //если нашли аккаунт то проверяем если чары на аккаунте куда мы собираемся перенести персонажа
    connectdb("character");
    //для выяснения принадлежности аккаунта к той или иной фракции нам достаточно найти одного любого перса
    $query = "SELECT race FROM characters WHERE account='".$newacc['id']."' LIMIT 1";
    $tmp = @mysql_query($query);
    $newchar = @mysql_fetch_array($tmp);
    //сравниваем полученный резал перебором и если совпадение найдено ставим переменную в единицу
    //если переменная еденица значит аккаунт пренадлежит к фракции орды
    if($newchar['race']=='2' OR $newchar['race']=='5' OR $newchar['race']=='6' OR $newchar['race']=='8' OR $newchar['race']=='10') $orc=1;
    if($newchar['race']=='1' OR $newchar['race']=='3' OR $newchar['race']=='4' OR $newchar['race']=='7' OR $newchar['race']=='11') $all=1;
    //если поле раса пустое то акк тоже пустой и переносить можно
    if(empty($newchar['race'])){
    $orc=1;
    $all=1;
    }
    }
    $query = "SELECT race FROM characters WHERE name='".$charname."' AND account='".$remhash['id']."' ";
    $tmp = @mysql_query($query);
    $remacc = @mysql_fetch_array($tmp);
    //если перса не нашли- нах
    if(empty($remacc['race'])) error("You not have character with this name on your account");
    else{
    if($remacc['race']=='2' OR $remacc['race']=='5' OR $remacc['race']=='6' OR $remacc['race']=='8' OR $remacc['race']=='10') $orc2=1;
    if($remacc['race']=='1' OR $remacc['race']=='3' OR $remacc['race']=='4' OR $remacc['race']=='7' OR $remacc['race']=='11') $all2=1;
    //проверяем оба аккаунта на предмет принадлежания обоих к одной фракции если нет - нах
    if($orc!=$orc2 AND $all!=$all2) error("Accounts have differents faction");
    else{
    // если все ок меняем номер аккаунта у перса - тадам :D
    $query = "UPDATE characters SET account='".$newacc['id']."' WHERE name='".$charname."'";
    $tmp = @mysql_query($query);
    if(!$tmp) error("какая то жопа в последнем запросе");
    else{header("location: /index.php?do=worldofwarcraft_accountmanager&mode=transfer&change=ok");}
    }
    }
    mysql_close();
    }

    Синтаксис и орфография сохранены.

    mulder, 10 Октября 2010

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

    +159

    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
    while ($CORE_PATH[strlen($CORE_PATH)-1]=='\\' || $CORE_PATH[strlen($CORE_PATH)-1]=='/')
    
    {
    
    	if (($CORE_PATH[strlen($CORE_PATH)-1]=='\\' || $CORE_PATH[strlen($CORE_PATH)-1]=='/') && strlen($CORE_PATH)>1)
    
    	{
    
    		$CORE_PATH = substr($CORE_PATH, 0, strlen($CORE_PATH)-1);
    
    	}
    
    	elseif (($CORE_PATH[strlen($CORE_PATH)-1]=='\\' || $CORE_PATH[strlen($CORE_PATH)-1]=='/') && strlen($CORE_PATH)==1)
    
    	{
    
    		$CORE_PATH = "";
    
    	}
    
    }

    netrain, 10 Сентября 2010

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