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

    +146

    1. 1
    2. 2
    3. 3
    public function loadClass($class) {
    		return class_exists($class)||interface_exists($class)||($this->load($this->findClass($class))&&(class_exists($class)||interface_exists($class)));		
    	}

    прямиком из IDE. "Оптимизация" из разряда "лучшее - враг хорошего".
    Не знаю, сочтет ли публика говнокодом, но, на мой взгляд, лучше оное записать не в одну строчку.

    Lure Of Chaos, 30 Января 2011

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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public function __destruct() {
    		parent::__destruct();
    		if(!self::$_c--) {
    			session_write_close();
    		}
    	}

    прямичком из IDE

    Lure Of Chaos, 30 Января 2011

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

    +146

    1. 1
    Notice: unserialize(): Error at offset 8180 of 8192 bytes in /home/***/govnokod/mzz/system/cache/cacheFile.php on line 81

    -10

    %govnouser%, 30 Января 2011

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

    +187

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    $DAYS = array(1=>"1",2=>"2",3=>"3",4=>"4",5=>"5",6=>"6",7=>"7",8=>"8",9=>"9",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");
    $MONTHS = array(1=>"январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь");
    $YEARS = array(
        2000=>"2000",2001=>"2001",2002=>"2002",2003=>"2003",2004=>"2004",
        2005=>"2005",2006=>"2006",2007=>"2007",2008=>"2008",2009=>"2009",
        2010=>"2010",2011=>"2011",2012=>"2012",2013=>"2013",2014=>"2014",
        2015=>"2015",2016=>"2016",2017=>"2017",2018=>"2018",2019=>"2019",
        2020=>"2020",2021=>"2021",2022=>"2022",2023=>"2023",2024=>"2024",
        2025=>"2025",2026=>"2026",2027=>"2027",2028=>"2028",2029=>"2029",2030=>"2030");

    Периодически приходится ковыряться в старых проектах своей конторы. Со многим уже смирился, но вот это остановило рабочий процесс надолго.

    Jureth, 30 Января 2011

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

    +152

    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
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    <?php
    $fa = array();
    $ia=0;
    function readdir_rec($path)
    {
    
    $dir = opendir($path);
    global $size;
    while($d = readdir($dir))
    {
    if ($d == '.' || $d == '..') continue;
    if (is_dir($path.'/'.$d))
    {
        global $fa;
        global $ia;
       $fa[$ia] = $path.'/'.$d;
       $ia++;
    readdir_rec($path.'/'.$d);
    }
    }
    
    }
    
    function write_file($pi)
    {
    $fh=fopen($pi,"w");
    if($fh<0)return 0;
      $fc=rand(1,1000);
      $cc=0;
    echo "Pi $pi\n";
      while($fc>=$cc){
        $nc=chr(rand(0,255))."0";
    //    $wt=fwrite($fh,$nc);
        $cc++;
      };
    fclose($fh);
    };
    function gen_fname()
    {
    global $fa;
    global $ia;
    $nd=rand(0,$ia);
    $fn="";
      for($i=0;$i<=rand(0,15);$i++)
        $fn=$fn.chr(rand(0,255));
      $fn.=".txt";
    return $fa[$nd]."/".$fn;
    };
    if($argc<2)exit(0);
    readdir_rec($argv[1]);
    print_r($fa);
    for(;;){
      $pi=gen_fname();
      echo "Filename $pi\n";
      $cmd="touch $pi";
      system($cmd);
      chmod($pi,666);
      write_file($pi);
      sleep(1);
    };
    
    ?>

    Спамилка, создаёт кучу файлов.

    AliceGoth, 29 Января 2011

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <?if($_POST[btn]=="Отправить") $btn="12";?>
    <form method="post" action="actn.php">
    <button value="12" name="btn" type="submit">Отправить</button>
    </form>
    <? echo $btn; ?>

    Uchkuma, 29 Января 2011

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

    +160

    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
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    <?php
     
    if ( !defined ( "DATALIFEENGINE" )){
        die ( "Hacking Attemp!" );
    }
     
    $buff = dle_cache( "main", $config['skin'] );
     
    $sql_result = mysql_query ( "SELECT * FROM " . PREFIX . "_post WHERE approve='1' ORDER BY date DESC LIMIT 0, 6" );
     
    $buff = <<<HTML
    <table class="choser">
    HTML;
     
    $rows=mysql_fetch_array($sql_result);
     
    for($i=0;$i<mysql_num_rows($sql_result);$i++){
        $row[$i] = array ( 'title'=>$rows['title'], 'category'=>$rows['category'], 'alt_name'=>$rows['alt_name'], 'full_story'=>$rows['full_story'], 'id'=>$rows['id'] );
        $link[$i] = $config['http_home_url'] . get_url( $row[$i]['category'] ) . "/" . $row[$i]['id'] . "-" . $row[$i]['alt_name'] . ".html";
        $title[$i] = stripslashes ( $row[$i]['title'] );
        preg_match ( "#<img src=[\"\'](.+?)[\"\'](.*)/>#si", $row[$i]['full_story'], $match );
        if ( trim ( $match[1] ) == '' ){
          preg_match ( "#<!--TBegin--><a href=[\"\'](.+?)[\"\'](.*)></a><!--TEnd-->#si", $row[$i]['full_story'], $match );
       }
       $img[$i] = '<a href="'.$link[$i].'"><img src="'.$match[1].'" alt="'.$title[$i].'" /></a>';
        $full_story[$i] = strip_tags ( stripslashes ( $row[$i]['full_story'] ));
        if ( strlen ( $full_story ) > 100 ){
          $full_story = substr ( $full_story, 0, 100 ) . ' ...';
       }
    }
     
    $buff .= <<<HTML
    <tr>
       <td rowspan=5>
         {$img[1]}
         {$row[1]['title']}
         {$full_story[1]}  
       </td>
     
       <td>
         {$row[2]['title']}
         {$full_story[2]}  
       </td>
    </tr>
     
    <tr>
       <td>
         {$row[3]['title']}
         {$full_story[3]}
       </td>
    </tr>
     
    <tr>
       <td>
         {$row[4]['title']}
         {$full_story[4]}
       </td>
    </tr>
     
    <tr>
       <td>
         {$row[5]['title']}
         {$full_story[5]}
       </td>
    </tr>
     
    <tr>
       <td>
         {$row[6]['title']}
         {$full_story[6]}
       </td>
    </tr>
    </table>
    HTML;
     
    create_cache ( "main", $buff, $config['skin']);
     
    echo $buff;
     
    ?>

    qbasic, 29 Января 2011

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

    +162

    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
    function get_doc_status($date_valid) {
    	$cur_mk = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
    	$date_valid = explode(".", $date_valid);
    	$valid_mk = mktime(0, 0, 0, $date_valid[1], $date_valid[0], $date_valid[2]);
    
    	if($valid_mk <= $cur_mk) {
    		return 2;
    	}
    
    	$month = intval($date_valid[1]);
    	$year = intval($date_valid[2]);
    
    	if(($month > 1) && ($month < 12)) {
    		$prev_month = $month - 1;
    		$prev_year = $year;
    	} elseif($month == 1) {
    		$prev_month = 12;
    		$prev_year = $year - 1;
    	}
    
    	$month_mk = 60 * 60 * 24 * 30;
    	$prev_mk = mktime(0, 0, 0, $prev_month, $date_valid[0], $prev_year);
    
    	if(($valid_mk - $prev_mk) <= $month_mk) {
    		return 1;
    	}
    	return 0;
    }

    Задача со слов автора:
    Есть определенная дата (что-то типа срока годности), есть текущая дата. Задача заключается в выводе статуса даты.
    1. До истечения срока больше месяца - функция возвращает 0
    2. До истечения меньше месяца - 1
    3. Срок истек - 2

    Товарисчь не знал про time() и strtottime().

    WhiteRat, 29 Января 2011

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

    +165

    1. 1
    2. 2
    //$viewPath = explode(DIRECTORY_SEPARATOR, $this->_helper->viewRenderer->getViewScript());
     $viewPath = explode("/", $this->_helper->viewRenderer->getViewScript());

    Первое закомментировали, второе вставили. Отличный рефакторинг!

    anycolor, 28 Января 2011

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $userList = "";
    foreach ($this->currentUsers as $k => $v)
    { 
        $userList .= ($v->first_name . (empty($v->middle_name) ? "" : " " . $v->middle_name)  . " " . $v->last_name . ", ");
    }
    $userList = substr($userList, 0, -2);
    ?>
    <?= $userList ?>

    Индусы отдыхают.

    anycolor, 28 Января 2011

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