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

    +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
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    <?php
    //Список категорий
    function get_cat_list () {
    $sql_cat_list = mysql_query("SELECT * FROM te_categories ORDER BY category_id");
    for ($cat_list=array(); $row=mysql_fetch_assoc($sql_cat_list); $cat_list[]=$row);
    $cat_list = array_reverse ($cat_list); //переворачиваем массив
    return $cat_list;
    }
     
    //Категории в норм виде (возвращает массив или печатает)
    function get_categories ($cat_list, $print="noprint") {
    foreach ($cat_list as $cat)
    	{
    	$categories [$cat['category_id']]['name'] = $cat['name'];
    	$categories [$cat['category_id']]['cat_count'] = $cat['cat_count'];
    	if ($print !== "noprint") echo '<li class="list"><a href="?page=article&category_id='.$cat['category_id'].'">'.$cat['name'].'</a> <small>('.$cat['cat_count'].')</small></li>';
    	}
    	if ($print == "noprint") return $categories;
    }
    /*
    Коментарий ниже:
    Зачем вначале мы получили список категорий $cat_list, 
    а затем зачем-то преобразовали в $categories в цикле foreach? 
    Просто для удобства и красоты мы из списка массивов 
    (записей или строк), полученных из БД, 
    сделали двумерный массив 
    с первичным ключом category_id 
    (ведь он у нас уникален). 
    Для наглядности распечатайте оба этих массива, 
    и сразу увидите разницу:
    */
    ?>

    Свеженькое Г
    Версия 0.02 CMS Tractor Engine
    (Кажись 2010 год)
    Будущее интернетов...

    istem, 13 Ноября 2010

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

    +121

    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
    string commQuery = "CREATE DATABASE " + this.textBox1.Text +
                                   " ON" +
                                   " ( " +
                                        "NAME =" + this.textBox1.Text + ", " +
                                        "FILENAME =" + this.textBox2.Text + 
                                        "SIZE = 100mb, " +
                                        "MAXSIZE = unlimited, " +
                                        "FILEGROWTH = 5mb" +
                                   " ) " +
                                   "LOG ON " +
                                   " ( " +
                                         "NAME =" + this.textBox1.Text + ", " +
                                         "FILENAME =" + this.textBox2.Text + 
                                         "SIZE = 3mb, " +
                                         "MAXSIZE = 50mb, " +
                                         "FILEGROWTH = 5mb" +
                                   " ) ";
                
               SqlConnection conSQL = new SqlConnection("Data Source = (local);" + "Integrated security = True;" + "database = master");
                SqlCommand commSQL = new SqlCommand("", conSQL);
                
                commSQL.CommandType = CommandType.Text;
                commSQL.CommandText = commQuery.ToString();
                   
                
                conSQL.Open();
                commSQL.ExecuteNonQuery();
                conSQL.Close();

    очень нравиться совершенство стиля формирования БД на сервере и защита от SQL иньекций :-D

    ageron, 13 Ноября 2010

    Комментарии (1)
  3. ActionScript / Говнокод #4615

    −154

    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
    for(i = 0;i < 15;i++)//break_names_array.length
    {
    	name_buttons_array[i] = new BreakenFriends(break_names_array[0]);
    	name_buttons_array[i].x = i * name_buttons_array[i].width;
    	addChild(name_buttons_array[i]);
    	
    	if(i >= 12)
    	{
    		name_buttons_array[i].y = 4 * (name_buttons_array[i].height + 5);
    		name_buttons_array[i].x = (i - 12) * name_buttons_array[i].width;
    		}else
    	if(i >= 9)
    	{
    		name_buttons_array[i].y = 4 * (name_buttons_array[i].height + 5);
    		name_buttons_array[i].x = (i - 9) * name_buttons_array[i].width;
    	}else
    	if(i >= 6)
    	{
    		name_buttons_array[i].y = 3 * (name_buttons_array[i].height + 5);
    		name_buttons_array[i].x = (i - 6) * name_buttons_array[i].width;
    	}else
    	if(i >= 3)
    	{
    		name_buttons_array[i].y = 2 * (name_buttons_array[i].height + 5);
    		name_buttons_array[i].x = (i - 3) * name_buttons_array[i].width;
    	}
    	else 
    	{
    		name_buttons_array[i].y = (name_buttons_array[i].height + 5);
    	}
    }

    "Таблица" =)

    KirAmp, 13 Ноября 2010

    Комментарии (0)
  4. C++ / Говнокод #4614

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    int m[3][3]={
    {1, 6, 7},
    {2, 5, 8},
    {3, 4, 9}};
    int tmp[3]={m[0][0],m[0][1],m[0][2]}; m[0][0]=m[1][0];m[0][1]=m[1][1];m[0][2]=m[1][2]; m[1][0]=tmp[0];m[1][1]=tmp[1];m[1][2]=tmp[2];

    Программа меняет местами 2 строки

    qbasic, 13 Ноября 2010

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

    −191

    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 * FROM l_table AS bl
    
    LEFT JOIN t_table AS bt
    
    ON (bl.ID = bt.ID)
    
    WHERE DZ IN
    
    (
    
    SELECT LEFT(GROUP_CONCAT(DZ ORDER BY DZ DESC), 19)
    
    FROM l_table GROUP BY UID
    
    )
    
    GROUP BY UID
    
    ORDER BY DZ DESC
    ;

    advvzlol, 13 Ноября 2010

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    for( int b = 0; b < cntblocket; ++b )
    {
        delete msrLst[b]->record;
        delete msrLst[b]->record;
    }

    Сразу вспоминается: "- А зачем у вас тут два одинаковых jump'а стоять? - А вдруг один не сработает?"

    Видимо, совсем не выспался программист ;)

    ftptrash, 13 Ноября 2010

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

    +121

    1. 1
    2. 2
    3. 3
    4. 4
    if (Convert.ToBoolean(ViewState["IsProgram"]) != null && Convert.ToBoolean(ViewState["IsProgram"]))
    {
        // do work
    }

    Это взорвало мой мозг...

    rstrg, 13 Ноября 2010

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

    +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
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    $myPid = getmypid();
    $state = shell_exec("ps -o \"%p:%P:%c;\"");
    $psPid = false;
    $processes = array();
    $linesArr = explode(";", $state);
    foreach($linesArr as $line)
    {
        $pProp = explode(":", $line);
        $processes[trim($pProp[0])] = $pProp;
        if($pProp[1] == $myPid)
        {
            $psPid = $pProp[0];
        }
    }
    //checking pids of processes
    if($psPid !== false)
    {
        if(key_exists($psPid - 1,$processes) && preg_match("/micq/i",$processes[$psPid - 1][2]))
        {
            $sessionConfig->addPid($psPid - 1);
        }
        if(key_exists($psPid - 2,$processes) && preg_match("/tail/i",$processes[$psPid - 2][2]))
        {
            $sessionConfig->addPid($psPid - 2);
        }
    }

    Вот и этот код, про который я рассказывал в комментарии к #4609

    raorn, 13 Ноября 2010

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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    function runIcqBot($username, $password) {
    	$command = "nohup php-fcgi process.php ". $username ." ". $password ." > logs/".$username.".log &";
    	shell_exec($command);
    }

    И похеру на безопасность... Зато ICQ-клиент прямо в браузере!

    dwinner, 13 Ноября 2010

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

    +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
    char* setw_c(int width, char* str, const char align){
        width = width - strlen(str) / 2; 
    
        if (align == 'l'){
            std::cout << str;
            if (width > 0)
                for (int i = 0; i < width - 1; i++)
                    std::cout << " ";
    		return " ";
        } else {
            if (width > 0)
                for (int i = 0; i < width; i++)
                    std::cout << " ";
    		return str;
        }
    }

    вот так коряво я решил проблему с setw(), кириллицей и utf-8.
    strlen() - чуть ли не единственная функция из cstring, более-менее нормально работающая с кириллицей в utf-8, да и то возвращает не реальную длину, а в два раза бОльшую, т.к. в utf-8 символ кириллицы занимает 2 байта, вместо одного, чего эта функция не учитывает.

    bugaga_, 13 Ноября 2010

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