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

    +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
    $metka=0;
    $reason = $form->getValue("reason");
    if ($activedate < $datenow)
    	{
    		$metka++;
    	}
    
    if (trim($reason) == "")
    	{
    		$metka++;
    	}
    if ($conflict>0)
    	{
    		$metka++;
    	}
    
    if ($metka == 0)
    	{
    		for ($i=0;$i<count($srid);$i++)
    		{
    			$this->changeRates($srid[$i],$rate[$i],$datenow,$activedate,$reason);
    		}
    		pageAlert::nextPageAlert("Ставки по тарифам успешно сохранены!", PAGE_ALERT_SUCCESS);
    	}

    Вот как кодят программисты, не слышавшие про исключения и return false при ошибках

    1Ad_Astra1, 18 Мая 2010

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

    +165

    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
    for($i=0; $i < $fldCount; $i++) {
          if($fldType[$i]==8) {
            eval("\$f_".$fld[$i]."_year = substr(\$f_".$fld[$i].", 0, 4);");
            eval("\$f_".$fld[$i]."_month = substr(\$f_".$fld[$i].", 5, 2);");
            eval("\$f_".$fld[$i]."_day = substr(\$f_".$fld[$i].", 8, 2);");
            eval("\$f_".$fld[$i]."_hours = substr(\$f_".$fld[$i].", 11, 2);");
            eval("\$f_".$fld[$i]."_minutes = substr(\$f_".$fld[$i].", 14, 2);");
            eval("\$f_".$fld[$i]."_seconds = substr(\$f_".$fld[$i].", 17, 2);");
          }
          else if ($fldType[$i]==6 && $fldValue[$i]) {
            ${"f_".$fld[$i]."_old"} = $fldValue[$i];
    
            $fileinfo = $db->get_row("SELECT * FROM `Filetable`
              WHERE `Field_ID` = ".$fldID[$i]." AND `Message_ID` = ".$message, ARRAY_A);
        
            if ($fileinfo) {
              ${"f_".$fld[$i]} = $SUB_FOLDER . rtrim($HTTP_FILES_PATH, "/") . $fileinfo["File_Path"] . "h_" . $fileinfo["Virt_Name"];
              ${"f_".$fld[$i]."_url"} = $SUB_FOLDER . rtrim($HTTP_FILES_PATH, "/") . $fileinfo["File_Path"] .        $fileinfo["Virt_Name"];
              ${"f_".$fld[$i]."_name"} = $fileinfo["Real_Name"];
              ${"f_".$fld[$i]."_size"} = $fileinfo["File_Size"];
              ${"f_".$fld[$i]."_type"} = $fileinfo["File_Type"];
            }
            else {
              preg_match("/^(.+?(\.[^.]+)?):(.+):(.+)$/", $fldValue[$i], $regs);
              ${"f_".$fld[$i]} = $SUB_FOLDER.$HTTP_FILES_PATH.$fldID[$i]."_".$message.$regs[2];
              ${"f_".$fld[$i]."_url"} = $SUB_FOLDER.$HTTP_FILES_PATH.$fldID[$i]."_".$message.$regs[2];
              ${"f_".$fld[$i]."_name"} = $regs[1];
              ${"f_".$fld[$i]."_size"} = $regs[4];
              ${"f_".$fld[$i]."_type"} = $regs[3];
            }
          }
        }

    И ещё один кусочек из того же файла (/netcat/message.php).

    telnet, 18 Мая 2010

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

    +166

    1. 1
    2. 2
    if($posting == 0) {
      if(!isset($posting) && count($fld)) {

    Всё та же NetCat 3.6.

    telnet, 18 Мая 2010

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

    +163

    1. 1
    $NETCAT_FOLDER = join( strstr(__FILE__, "/") ? "/" : "\\", array_slice( preg_split("/[\/\\\]+/", __FILE__), 0, -3 ) ).( strstr(__FILE__, "/") ? "/" : "\\" );

    Метод определения абсолютного пути к папке, лежащей на сколько-то уровней выше текущей.

    telnet, 18 Мая 2010

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

    +149

    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
    $sql = " SELECT *, DATE_FORMAT( `date`, '%d.%m.%y %H:%i:%s' ) as `date` FROM `messages` ORDER BY `id` DESC LIMIT {$n->start()},".PNUMBER;
    	if ( $qr=mysql_query( $sql ) )
    	{
    		
    			while ( $row = mysql_fetch_assoc( $qr ) )
    			 {
    				echo htmlspecialchars( $row['name'] ).' ['.htmlspecialchars( $row['date'] ).']<br>';
    				echo smile( htmlspecialchars( $row['message'] ) ).'<br>';
    				if ( $row['otvet'] )
    					echo '<b>Ответ: '.smile( htmlspecialchars( $row['otvet'] ) ).'</b><hr>';
    				else
    					echo '<hr>';
    			}
    	}
    	else 
    	{
    		echo 'Произошла системная ошибка';
    		mysql_function_error( 'Возникла ошибка при запросе. SQL: '.$sql.'|ERROR: '.mysql_error( ) );
    	}

    ...

    lugaro, 17 Мая 2010

    Комментарии (9)
  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. PHP / Говнокод #3247

    +166

    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
    for ( ; $k <= 15; ++$k ) {
    	$map[$k] = $mx2[$k];
    
    	// A
    	if ( $map[$k] == 10 && $k == 1 || $map[$k] == 10 && $k == 2 || $map[$k] == 10 && $k == 3 ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// B
    	if ( $map[$k] == $map[$k-1] ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// C
    	if ( $map[$k] == $map[$k-2] && ( $k == 3 || $k == 6 || $k == 9 || $k == 12 || $k == 15 ) ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// B
    	if ( $map[$k] == $map[$k-1] ) {
    		$map[$k] = rand( 1, 9 );
    	}
    	// C
    	if ( $map[$k] == $map[$k-2] && ( $k == 3 || $k == 6 || $k == 9 || $k == 12 || $k == 15 ) ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// B
    	if ( $map[$k] == $map[$k-1] ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// C
    	if ( $map[$k] == $map[$k-2] && ( $k == 3 || $k == 6 || $k == 9 || $k == 12 || $k == 15 ) ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// B
    	if ( $map[$k] == $map[$k-1] ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// C
    	if ( $map[$k] == $map[$k-2] && ( $k == 3 || $k == 6 || $k == 9 || $k == 12 || $k == 15 ) ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// B
    	if ( $map[$k] == $map[$k-1] ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// C
    	if ( $map[$k] == $map[$k-2] && ( $k == 3 || $k == 6 || $k == 9 || $k == 12 || $k == 15 ) ) {
    		$map[$k] = rand( 1, 9 );
    	}
    }

    $mx2 - массив из 15 элементов(элементы имеют значение от 1 до 10, расположены рандомно). Генерируется таким образом новый массив $map, в котором не могут быть два одинаковых элемента подряд(а так же текущий и пред-предыдущий не должны быть равны). Как бы сделал типичный программист? Зафигачил бы в цикле цикл, в которм бы проверял равенство текущего элемента и предыдущего. А вот так сделал мудак со стажем. Не удивительно, что периодически всё работает не так как надо...

    azzz, 17 Мая 2010

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    # массив вывода BB-кодов
      $BBcode = array(
      "SIZE" => "<select class='nc_bbcode_bar_size' onChange=\"insert_bbcode('".$winID."','".$formID."','".$textareaID."', '[SIZE=' + this.value + ']', '[/SIZE]'); this.selectedIndex=0;\"  name='bb_fontsize' title='".NETCAT_BBCODE_SIZE."' ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_SIZE."');\"" : "").">\r\n<option value=''>-- ".NETCAT_BBCODE_SIZE_DEF." --\r\n<option value='8'>8px\r\n<option value='10'>10px\r\n<option value='12'>12px\r\n<option value='14'>14px\r\n<option value='16'>16px\r\n<option value='18'>18px\r\n<option value='20'>20px\r\n<option value='22'>22px\r\n<option value='24'>24px\r\n</select>\r\n",
      "COLOR" => "<a href='#' onClick=\"show_color_buttons('".$textareaID."'); return false;\" id='nc_bbcode_color_button_".$textareaID."' ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_COLOR."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_color.gif' alt='".NETCAT_BBCODE_COLOR."' class='nc_bbcode_wicon'></a>\r\n",
      "SMILE" => "<a href='#' onClick=\"show_smile_buttons('".$textareaID."'); return false;\" id='nc_bbcode_smile_button_".$textareaID."' ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_SMILE."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_smile.gif' alt='".NETCAT_BBCODE_SMILE."' class='nc_bbcode_wicon'></a>\r\n",
      "B" => "<a href='#' onClick=\"insert_bbcode('".$winID."','".$formID."','".$textareaID."','[B]','[/B]'); return false;\" ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_B."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_bold.gif' alt='".NETCAT_BBCODE_B."' class='nc_bbcode_icon'></a>\r\n",
      // ... ещё 8 подобных строк ...
      "CUT" => "<a href='#' onClick=\"insert_bbcode('".$winID."','".$formID."','".$textareaID."','[CUT=\'".NETCAT_BBCODE_CUT_MORE."\']','[/CUT]'); return false;\" ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_CUT."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_cut.gif' alt='".NETCAT_BBCODE_CUT."' class='nc_bbcode_icon'></a>\r\n");

    Нет, это не Битрикс, это хуже. Зовётся сие чудо NetCat. Моё личное впечатление от CMSки - ТЗ составлял кто-то весьма неглупый, потому что пользоваться довольно удобно и в концепцию заложены прикольные идеи, но вот код писать посадили младшекурсников за экзамен автоматом. Без переписывания половины кода будущего у неё нет. Уже на PHP 5.3 или на MySQL старше 5.0 она отказывается работать. И тем не менее всё больше хостеров гордо пишут на своих сайтах, что поддерживают её.

    telnet, 16 Мая 2010

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

    +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
    class string{
    
    function strToUp($lo){
    $up=array("а" => "А","б" => "Б","в" => "В","г" => "Г","д" => "Д","е" => "Е","ж" => "Ж","з" => "З","и" => "И",
    "й" => "Й","к" => "К","л" => "Л","м" => "М","н" => "Н","о" => "О","п" => "П","р" => "Р","с" => "С",
    "т" => "Т","у" => "У","ф" => "Ф","х" => "Х","ц" => "Ц","ч" => "Ч","ш" => "Ш","щ" => "Щ","ъ" => "Ъ",
    "ы" => "Ы","ь" => "Ь","э" => "Э","ю" => "Ю","я" => "Я", "a" => "A", "b" => "B", "c" => "C","d" => "D","e" => "E","f" => "F","g" => "G","h" => "H","i" => "I","j" => "J",
    "k" => "K","l" => "L","m" => "M","n" => "N","o" => "O","p" => "P","q" => "Q","r" => "R","s" => "S",
    "t" => "T","u" => "U","v" => "V","w" => "W","x" => "X","y" => "Y","z" => "Z"
    );
    
    return strtr($lo, $up);
    }
    }

    говнокласс ?? взято тут: http://www.runanet.net/technical/php/3/

    antigovnokoder, 16 Мая 2010

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

    +167

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function getItemsList ($category_id, $page_number, $count, $sort) {
    	ini_set ('display_errors', 'Off');
            $arr = $this->grabber_api_class->loadItemsByCategoryID ($category_id, $page_number, $count, $sort);
    	ini_set ('display_errors', 'On');
    		
    	return $arr;
    	
    }

    minisot, 14 Мая 2010

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