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

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

    +157

    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
    function convert($str,$ky=''){
      if($ky=='')return $str;
      $ky=str_replace(chr(32),'',$ky);
      if(strlen($ky)<8)exit('key error');
      $kl=strlen($ky)<32?strlen($ky):32;
      $k=array();
      for($i=0;$i<$kl;$i++){
        $k[$i]=ord($ky{$i})&0x1F;
      }
      $j=0;
      for($i=0;$i<strlen($str);$i++){
        $e=ord($str{$i});
        $str{$i}=$e&0xE0?chr($e^$k[$j]):chr($e);
        $j++;
        $j=$j==$kl?0:$j;
      }
      return $str;
    }

    PHPASTA

    bugmenot, 27 Января 2011

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

    +157

    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
    session_start();
    $value = array(
           "severity" => $severity,
           "message" => $message,
           "filepath" => $filepath,
           "line" => $line
    );
    if(empty($_SESSION['data']))
    {
        $_SESSION['data'] = serialize($value);
    }
    else
    {
        unset($_SESSION['data']);
        $_SESSION['data'] = serialize($value);
    }
    header("Location: ".BASE_URL."/error/php_error/");

    Вот обработчик ошибок из уже упомянутого мною проекта. Тот же самый кодер обрабатывает ошибки. При более чем одной ошибке валиться весь проект, из-за того что сессия уже стартовала. Увидев это у меня возник facepalm.

    bazyaka, 12 Января 2011

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

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    <?php
    //............
    if (!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $_POST[mail]))
    {
    echo"Адрес E-mail,веден неверно.<br /><br />";
    echo"Вы хотите <a href=\"index.php\">Повторить</a>";
    exit;
    }
    
    //............
    ?>

    Зачем ввобще придумали preg_match ?

    iNeeXT, 29 Декабря 2010

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

    +157

    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
    function get_file_info($glob, $freq = 0)
    {
      static $cache = array();
    
      if (isset($cache[$glob])) {
    
        return $cache[$glob];
    
      } else {
    
        $ret = new stdClass;
    
        $g = glob($glob);
    
        $test = trim(`ls $glob`);
        $g = split( "\n", $test );
        if (!is_array($g)) {
          return $ret;
        }
    
        $g = array_reverse($g);
    
        $ret->files = array();
        $now = time();
        $first = true;
    
        foreach($g as $filename) {
    
          $f = new stdClass;
    
          $f->name = $filename;
          $f->size = @filesize($f->name);
          $f->size_str = sprintf("%.1f",$f->size/1024/1024);
    
          if (preg_match("((\\d{12}))", $f->name, $m)) {
        $t = strtotime($m[1]);
        $f->time = $t;
        $f->time_str = str_replace(" ", " ", date("M d, Y H:i T", $f->time));
    
        if ($freq) {
          
          $to = $t + $freq - $now;
    
          if ($to < 0) {
            if ($to > -600) {
              $res = '<em>any moment now.</em>';
            } else {
              $res = '<em>please consult /dev/urandom</em>';
            }
          } else {
            $h = floor($to/3600);
            $m = floor(($to - $h * 3600) / 60);
            
            if ($h) {
              $res = $h . ' hour'.($h==1?'':'s').' and ' . $m . ' minute'.($m==1?'':'s');
            } else {
              $res = $m . ' minute'.($m==1?'':'s');        
            }
          }
    
          $f->next = $res;
        }
    
          }
    
          $ret->files[] = $f;
        }
    
        return $ret;
      }
    }

    Говнокод на сайте php.net :)
    Исходник: http://snaps.php.net/?source

    P.S. это еще цветочки, после обеда будет зачетный с http://www.php.net/source.php?url=/index.php

    wmmorgun, 28 Декабря 2010

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

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    <?php
    $str='евро@@4900';
    $flag1=true;
    $flag2=false;
    $str1=$str2='';
    for($i=1,$c=strlen($str);$i<$c;$i++){
    if($str[$i]!='@' and $flag1) $str1.=$str[$i]; else{ $flag1=false; $flag2=true;}
    if($str[$i]!='@' and $flag2) $str2.=$str[$i];
    }
    echo $str1.' '.$str2; 
    ?>

    Выносим "евро" и "4900" в две строки

    1_and_0, 24 Декабря 2010

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

    +157

    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
    function pages($table,$id,$page,$func,$num,$p,$count=false){
    global $db,$basepref;
    $outpages = array();
     
    if($count==0){
     $item_num = $db->fetchrow($db->query("SELECT COUNT(".$id.") AS total FROM ".$basepref."_".$table.""));
    } else {
     $item_num['total'] = $count;
    }
     
    $nums = @ceil($item_num['total']/$num);
     
    if($nums <= 1){
    $outpages[]=("<span class=\"pagesempty\">1</span>");
    } else {
    if($p > 1){
    $goback=$p-1;
    $outpages[]=("<a class=\"pages\" href=\"".$page.".php?dn=".$func."&p=1\"><<</a>");
    $outpages[]=("<a class=\"pages\" href=\"".$page.".php?dn=".$func."&amp;p=$goback\"><</a>");
    }
    for($i=1; $i<$nums+1; $i++) {
    if($i==$p){
    $outpages[]=("<span class=\"pagesempty\">$i</span>");
    } else {
    if(($i > $p) && ($i < $p+5) || ($i < $p) && ($i > $p-5)){ $outpages[]=("<a class=\"pages\" href=\"".$page.".php?dn=".$func."&amp;p=$i\">$i</a>"); }
    }
    }
    if($p<$nums){
    $gonext=$p+1;
    $outpages[]=("<a class=\"pages\" href=\"".$page.".php?dn=".$func."&amp;p=$gonext\">></a>");
    $outpages[]=("<a class=\"pages\" href=\"".$page.".php?dn=".$func."&p=$nums\">>></a>");
    }
    }
    return implode('&nbsp;',$outpages);
    }

    qbasic, 24 Декабря 2010

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

    +157

    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
    $count_per_page = 15;
    $page = 1;
     
                    mysql_select_db($DB);
                    $result = mysql_query('SELECT round(count(id)/' . $count_per_page . ') FROM PRICELIST');
       $counts = mysql_fetch_row($result);
    $page_max = $counts[0];
    if (!empty($_GET['page'])) {
    $page = (int) $_GET['page'];
    if ($page > $page_max)
    $page = $page_max;
    if ($page < 1)
    $page = 1;
    }
                    $result=mysql_query('SELECT SQL_CALC_FOUND_ROWS * from PRICELIST  LIMIT ' .(($page - 1) * $count_per_page). ', ' .$count_per_page ); 
                     $cnt  = mysql_result(mysql_query('SELECT FOUND_ROWS()'), 0);
    if(mysql_num_rows($result)) { // выводим таблицу 
      echo "<td valign='right width='12%' height='15px' align='center' bgcolor=#FFFFFF>Артикул</td>
                    <td valign='right width='58%' height='' align='center' bgcolor=#FFFFFF>Наименование изделий</td>
     
                    <td valign='right width='10%' height='' align='center' bgcolor=#FFFFFF>Страна</td>
                    <td valign='right width='10%' height='' align='center' bgcolor=#FFFFFF>Ед</td>
                    <td valign='right width='15%' height='' align='center' bgcolor=#FFFFFF>Цена</td>
                    <td valign='right width='5%' height='' align='center' bgcolor=#FFFFFF>картинка</td>";
    while($row = mysql_fetch_assoc($result)) { 
    echo "</tr>";
    echo "<tr>";
    echo '<td align=left width=12% height=10% bgcolor=#FFFFFF>'.$row['artikul'].'</td><td width=48%  align=left bgcolor=#FFFFFF height=30px>'.$row['nametovar'].'</td><td width=15% align=left bgcolor=#FFFFFF height=10px>'.$row['country'].'</td><td width=10% align=left bgcolor=#FFFFFF height=10px>'.$row['edin'].'</td><td width=10% align=left bgcolor=#FFFFFF height=10px>'.$row['cena'].'</td><td width=5% align=left bgcolor=#FFFFFF height=5px><a id="example1" href="kartinki/' . $row['image'] .'"><img src="kartinki/' . $row['image'] .'" width=75px height=75px></a></td>'; 
     } 
    echo '</tr></table><table height=1% width=100%><tr><td align="center" colspan="5" bgcolor=#FFFFFF>';
    echo $i;
    for ($i=1; $i<=$page_max; ++$i) {
    if ($i != $page) {
    echo '<a href="?page='.$i.'"><font color=#1007b8>'.$i.'</font></a> ';
    }
    else {
    echo '<font color=#e59001>'.$i.' </font>';
            }
        }
    echo '<h5 align=center><font color=#e59001>Всего в прайс-листе '. $cnt .' позиций</font></h5>';
    }

    qbasic, 24 Декабря 2010

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

    +157

    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
    $query = "SELECT * FROM records WHERE  id_film='$id_film'";        
    $results = mysql_query($query);
    $var1 = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
    $var1 = $var1. "<playlist>\n";     
    while($line = mysql_fetch_assoc($results))
      {
    $tmp_us = $tmp_us.$line['id_user'];
      $var1 = $var1."<vid src=\"http://homelinux.com:8080/sample1/content/audiorecord/"
      . $line['id_user']
      ."/"
      . $line["file_name"]
      ."_d.flv"
      . "\" label=\""
      . $line["file_name"]
      ."\""
      ." id_film=\""
      . $line["id_film"]
      ."\""
      ." time_begin=\""
      . $line["time_begin"]
      ."\""
      ." time_end=\""
      . $line["time_end"]
      ."\""
      ." id_user=\""
      . $line["id_user"]
      ."\""  
      ." sh_val=\""
      . $line["sh_val"]
      ."\""
      ." id_record=\""
      . $line["id_record"]
      ."\""
      ."/>\n";
    }
    $var1 = $var1."</playlist>\n"; 
    echo "var1=$var1";

    Вот так некоторые Flash-еры формируют xml пакеты

    Agel_Nash, 16 Декабря 2010

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

    +157

    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
    class Tovar
    {
    var $id;
    var $idkey;
    var $parentid;
    var $clientid;
    var $categoryid;
    var $name;
    var $price;
    var $url;
    var $img_url;
    var $description;
    var $vendor;
    
    }
    
    class Category
    {
    var $id;
    var $idkey;
    var $parentid;
    var $name;
    }

    Работа с объектами в PHP4 :)) Вроде как Evolution Маркет...

    xakip, 14 Декабря 2010

    Комментарии (134)
  11. JavaScript / Говнокод #4880

    +157

    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
    function processGetPost() {
      var myajax=ajaxpack.ajaxobj;
      var myfiletype=ajaxpack.filetype;
      if (myajax.readyState == 4) {
        if (myajax.status==200 || window.location.href.indexOf("http")==-1) {
          if (myfiletype=="txt") {}
          else {
            var resp = myajax.responseXML;
    	var xmlRoot = resp.documentElement;
    	dateArray = xmlRoot.getElementsByTagName("putdate");
    	userArray = xmlRoot.getElementsByTagName("name");
    	var html = "<table border='1'><tr><th>Время входа</th>";
    	html += "<th>Имя пользователя</th></tr>";
    	var conlines = dateArray.length;
    	if (conlines) {
    	  for (var i=0; i<conlines; i++) {
    	    html += "<tr>";
    	    html += "<td>"+dateArray.item(i).firstChild.data+"</td>";
    	    html += "<td>"+userArray.item(i).firstChild.data+"</td>";
    	    html += "</tr>";
    	  }
    	}
    	html += "</table>";
    	myDiv = document.getElementById("onlines");
    	myDiv.innerHTML = html;
         }
         timerID = setTimeout("ajaxpack.getAjaxRequest('active_users.php','',processGetPost,'xml');", 5000);
       }
     }
    }

    Мой говнокод 4-х летней давности, но воняет до сих пор. 6-ая строчка особенно убивает.

    dwinner, 09 Декабря 2010

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