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

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

    +36

    1. 1
    2. 2
    3. 3
    $kd = strrpos("$fotofilenames[$i]", ".");
        $kf = substr("$fotofilenames[$i]", $kd+1, strlen("$fotofilenames[$i]")-$kd);
        $kf = strtolower($kf);

    вот так и живем.

    Специальная олимпиада по программированию для программистов PHP, VB и 1c (c)

    brainstorm, 22 Сентября 2011

    Комментарии (12)
  3. SQL / Говнокод #7933

    −862

    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
    SELECT POL_PREMIUM
       INTO i_csp
       FROM policy
       WHERE 
        policy_key = i_polkey AND 
        pol_status_cde = 1;
       
     SELECT POL_CLIENT_CDE
         INTO i_clientno
         FROM policy
       WHERE policy_key = i_polkey
       AND pol_status_cde = 1;
       
       SELECT POL_PLAN_CDE
         INTO i_plan
         FROM policy
       WHERE policy_key = i_polkey
       AND pol_status_cde = 1;
    
    SELECT 110
          INTO i_SecAllrks
          FROM DUAL;

    Запятые и знаки инициализации переменных придумали для трусов =) Имхо. Не вкурила зачем так делать.

    Dragon, 22 Сентября 2011

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

    +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
    <?php
    	class Cache
    {
    		var $secret;
    		function create($timexpire, $data, $catalog="cache/"){
    			$filename = $catalog.$this->cache().".cache";
    			$data = "$timexpire\n$data";
    			$fo = fopen($filename, "w");
    			fwrite($fo, $data);
    			fclose($fo);
    		}
    		function read($catalog = "cache/"){
    			$filename = $catalog.$this->cache().".cache";
    			if(file_exists($filename)){
    				$content = file($filename);
    				if(trim($content[0]) < time()){
    					return 0;
    				}
    				unset($content[0]);
    				return ltrim(implode('', $content));
    			}
    			return 0;
    		}
    		function clean($catalog = "cache/"){
    			if($data = glob($catalog."*")){
    				foreach($data as $o){
    					if(is_dir($o)){
    						$this->clean($o);
    					}else{
    						unlink($o);
    					}
    				}
    			}
    			rmdir($catalog);
    		}
    		function cache(){
    				$filename = $_SERVER['REQUEST_URI'];
    				if(isset($_POST)){
    					$filename .= implode('',$_POST);
    				}
    				return md5($this->secret.$filename);
    		}
    }
    ?>

    Мой класс для кеширования.
    Писал давно.

    snet, 21 Сентября 2011

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

    +956

    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
    private void SetDisplay(string Group)
    {
           string taxInt = "144";
           switch (Group.ToLower())
           {
                  case "bond":
                         taxInt = "141";
                         ..............
                         break;
                  case "commodity":
                         taxInt = "329";
                         ..............
                         break;
                  case "emarkets":
                         taxInt = "142";
                         ..............
                         break;
                  default:
                         taxInt = "144";
                         ..............
                         break;
           }
           SetItems(taxInt);
    }
    
    public void SetItems(string taxInt)
    {
           Trace.Write(taxInt);
           int number;
           bool result = Int32.TryParse(taxInt, out number);
           if (result)
           {
                  tid = number;
           }
           else
           {
                  tid = 144;
                  this.lbHard.Style.Add("color", "#000");
           }
           Trace.Write(tid.ToString());
           if (tid > 0)
           {
                   ..............
            }
           else
           {
                   //здесь было пусто
           }
    }

    Лишний код удалён, оставлена только самая важная часть кода))

    dimon1988, 17 Сентября 2011

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    <? echo "$Welcome" ?> <? 	
    	$site = session_id();
    	 echo ", <b>" . $_SESSION["esb2b_username"] . "</b>" ;
    ?>

    Из одного китайско-арабского скрипта. Хорошо дан пробел после "Welcome".

    otnes, 09 Сентября 2011

    Комментарии (12)
  7. JavaScript / Говнокод #7812

    +161

    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
    <select onchange="goTo();" id="navSelect">
    <option value="/way_to_hell/">Вопросы-ответы</option>
    .
    .
    .
    </select>
    
    <script>
    function goTo()
    {
      var objSel = document.getElementById("navSelect");
      window.location = objSel.options[objSel.selectedIndex].value;
    }
    
    </script>
    
    
    
    //можно вообще вот так:
    <select onchange="window.location = this.options[this.selectedIndex].value">

    dr_fet, 08 Сентября 2011

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

    +162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public function editSetting($group, $data, $store_id = 0) {
    	$this->db->query("DELETE FROM " . DB_PREFIX . "setting WHERE store_id = '" . (int)$store_id . "' AND `group` = '" . $this->db->escape($group) . "'");
    	foreach ($data as $key => $value) {
    		if (!is_array($value)) {
    			$this->db->query("INSERT INTO " . DB_PREFIX . "setting SET store_id = '" . (int)$store_id . "', `group` = '" . $this->db->escape($group) . "', `key` = '" . $this->db->escape($key) . "', `value` = '" . $this->db->escape($value) . "'");
    		} else {
    			$this->db->query("INSERT INTO " . DB_PREFIX . "setting SET store_id = '" . (int)$store_id . "', `group` = '" . $this->db->escape($group) . "', `key` = '" . $this->db->escape($key) . "', `value` = '" . $this->db->escape(serialize($value)) . "', serialized = '1'");
    		}
    	}
    }

    Всё оттуда же (Open Cart).
    Оно бы вроде и ничего, если бы не id и автоинкрементом в таблице "setting". Вот так вот, каждый раз сохраняя настройки, мы прибиваем стопицот старых значений и заводим столько же совершенно новых, которые, тем не менее, в большинстве своём ничем не отличаются от старых.

    cybervantyz, 06 Сентября 2011

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

    +963

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    private void SetStat(QALog stat, ArtIntLnkLog log)
        {
            stat.AllLinks += 1;
            if (log.Command == 5)
                stat.ErrLinks += 1;
            if (log.Command == 1)
                stat.SetLinks += 1;
            if (log.Command == 2)
                stat.ReSetLinks += 1;
        }

    Такое вот чудное обновление статистики, где константы, switch и инкрементация непонятно.

    f5f3e9, 31 Августа 2011

    Комментарии (12)
  10. C++ / Говнокод #7673

    +158

    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
    DWORD WINAPI SexToClient(LPVOID client_socket) // Поток для клиента 
    { 
    SOCKET my_sock; 
    my_sock=((SOCKET *) client_socket)[0]; 
    char buffer[1024] = {0}; 
    int ral;
    
    while(1){ 
    ral =recv (my_sock,&buffer[0],sizeof(buffer), 0); 
    if(ral == SOCKET_ERROR) 
    {std::cout << "хуй" << "\n";} 
    else{ 
    std::cout << buffer << "\n"; 
    } 
    }
    
    closesocket(my_sock); 
    return 0; 
    }

    http://www.gamedev.ru/code/forum/?id=151671

    CPPGovno, 27 Августа 2011

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

    +167

    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
    class xsspolice 
    { 
    function getip() { 
    $ipno = getenv("REMOTE_ADDR");  
    return $ipno; 
    } 
    function look_data($data) { 
    $ip=$this->getip(); 
    $data = strtolower($data); 
    $br=$_SERVER['HTTP_USER_AGENT']; 
    $datenow=date("y-m-d h:m:s"); 
    if(isset($_SESSION['user'])) { 
    $username=$_SESSION['user']; 
    }else { 
    $username="unknown"; 
    } 
    if (strstr($data,"<") OR strstr($data,">") OR strstr($data,"(") OR strstr($data,")") OR 
    strstr($data,"..") OR 
    strstr($data,"%") OR 
    strstr($data,"*") OR 
    strstr($data,"+") OR 
    strstr($data,"!") OR 
    strstr($data,"@")) { 
    $this->validate_befor(); 
    $dirtystuff = array("\"", "\\", "/", "*", "'", "=", "- 
    ", "#", ";", "<", ">", "+", "%","(",")","}","{"); 
    $data = str_replace($dirtystuff, "", $data); 
    $data = htmlspecialchars($data); 
    $data = strip_tags($data); 
    $sql="INSERT INTO `attack` (`attacker_id`, `attacker_ip`, `attacker_username`, `attacker_date`, `attacker_comname`, `attacker_browsername`) VALUES (NULL, '".$ip."', '".$username."', '".$datenow."', 'test', '".$br."')";
    mysql_query($sql)or die("ٍError message"); 
    return $data; 
    }else 
    { 
    return $data; 
    } 
    } 
    function validate_befor() { 
    $ip=$this->getip(); 
    $sql="SELECT COUNT(`attacker_id`) FROM `attack` WHERE `attacker_ip`='".$ip."'"; 
    $sql=mysql_query($sql); 
    $sql=mysql_fetch_row($sql); 
    if ($sql[0]>=3) { 
    header("location: police.htm"); 
    } 
    } 
    } 
    ?>

    По ходу у Попова учился...
    Доставляет всё(к die() уже прувык...), но строка 26-29 О_о
    Это мания ???
    [url]http://www.phpclasses.org/package/7110-PHP-Block-accesses-attempting-to-perform-XSS-attacks.html[/url]

    AlexanderC, 26 Августа 2011

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