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

    +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
    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
    public static function perform($table, $data, $action = 'insert', $parameters = '') {
    		reset($data);
    		if ($action == 'insert') {
    			$query = 'INSERT INTO ' . $table . ' (';
    			while (list($columns, ) = each($data)) {
    				$query .= $columns . ', ';
    			}
    			$query = substr($query, 0, -2) . ') values (';
    			reset($data);
    			while (list(, $value) = each($data)) {
    				switch ((string)$value) {
    					case 'now()':
    						$query .= 'NOW(), ';
    						break;
    					case 'null':
    						$query .= 'NULL, ';
    						break;
    					default:
    						$query .= '\'' . mysql_escape_string($value) . '\', ';
    						break;
    				}
    			}
    			$query = substr($query, 0, -2) . ')';
    		} elseif ($action == 'update') {
    			$query = 'UPDATE ' . $table . ' SET ';
    			while (list($columns, $value) = each($data)) {
    				switch ((string)$value) {
    					case 'now()':
    						$query .= $columns . ' = NOW(), ';
    						break;
    					case 'null':
    						$query .= $columns .= ' = NULL, ';
    						break;
    					default:
    						$query .= $columns . ' = \'' . mysql_escape_string($value) . '\', ';
    						break;
    				}
    			}
    			$query = substr($query, 0, -2) . ' WHERE ' . $parameters;
    		}
    
    		self::request($query);
    	}

    Вот так у нас вставляют в базу :)

    wmmorgun, 15 Февраля 2011

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    $this->setLayout('empty');
            $this->setTemplate('step3');
    
            if ($this->getBrokerId() == 19 || $this->getBrokerId() == 29)
            {
                $this->setLayout('empty');
                $this->setTemplate('step3');
                $this->brokerId = $this->getBrokerId();
            }

    Нашел в чужом проекте. При этом $this->getBrokerId() не просто возвращает переменную, а производит сравнение строк (то есть вызывать этот метод 3 раза - явный перебор).

    blaster999, 15 Февраля 2011

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

    +159

    1. 1
    2. 2
    3. 3
    $ar=$arFields['GROUP_ID'];
    $arFields['GROUP_ID']=array();
    foreach($ar as $a) $arFields['GROUP_ID'][]=$a;

    Смысл данной конструкции не ясен, если так нужно обнулить ключи для массива то array_values() в помощь.

    tkf, 15 Февраля 2011

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

    +164

    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
    <?php
    class Gcont extends Controller {
    
    // ...
        
        function gcont(){
            $this->load->model('am_loader');
            $title = $this->am_loader->gettitle();
            echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"';
            echo '<html xmlns="http://www.w3.org/1999/xhtml">';
            echo '<head><title>'.$title.'</title>';
     
    // ...
            
            $this->load->view('gcont');
            
        }
    }

    Суровая генерация контента нубом из контроллера MVC.

    Sony, 15 Февраля 2011

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

    +163

    1. 1
    $sIsPublic = ($oPageInfo->is_public == 'true') ? 'false' : 'true';

    1_and_0, 15 Февраля 2011

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

    +171

    1. 1
    <?php eval(gzinflate(base64_decode('s7ezsS/IKODl4uVKzkksLlYISS0uUagG8RXSSvOSSzLz88BiGpogUQUFhdTkjHwFJUeFEqCgkjVQqBZVcXF+bmo8iKehkgjTU5RaUlqUp6CSqKCtYATXU2tjDwA='))); ?>

    Сегодня приятель спросил «а есть смысл сжимать PHP» и выдал вот эту хуйню. Сказал, что все свои проекты так сжимает. Как такое поддерживать потом?

    proxor, 15 Февраля 2011

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

    +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
    <?php
    ...
    // Проверяем нужны ли стрелки назад
    if ($page != 1) $pervpage = '<a href=catalog.php?page=1>Первая</a> |
    <a href=catalog.php?page='. ($page - 1) .'>Предыдущая</a> | ';
    // Проверяем нужны ли стрелки вперед
    if ($page != $total) $nextpage = ' | <a href=catalog.php?page='. ($page + 1) .
    '>Следующая</a> | <a href=catalog.php?page=' .$total. '>Последняя</a>';
    // Находим две ближайшие станицы с обоих краев, если они есть
    if($page - 5 > 0) $page5left = ' <a href=catalog.php?page='. ($page - 5) .'>'.
    ($page - 5) .'</a> | ';
    if($page - 4 > 0) $page4left = ' <a href=catalog.php?page='. ($page - 4) .'>'.
    ($page - 4) .'</a> | ';
    if($page - 3 > 0) $page3left = ' <a href=catalog.php?page='. ($page - 3) .'>'.
    ($page - 3) .'</a> | ';
    if($page - 2 > 0) $page2left = ' <a href=catalog.php?page='. ($page - 2) .'>'.
    ($page - 2) .'</a> | ';
    if($page - 1 > 0) $page1left = '<a href=catalog.php?page='. ($page - 1) .'>'.
    ($page - 1) .'</a> | ';
    if($page + 5 <= $total) $page5right = ' | <a href=catalog.php?page='. ($page + 5)
    .'>'. ($page + 5) .'</a>';
    if($page + 4 <= $total) $page4right = ' | <a href=catalog.php?page='. ($page + 4)
    .'>'. ($page + 4) .'</a>';
    if($page + 3 <= $total) $page3right = ' | <a href=catalog.php?page='. ($page + 3)
    .'>'. ($page + 3) .'</a>';
    if($page + 2 <= $total) $page2right = ' | <a href=catalog.php?page='. ($page + 2)
    .'>'. ($page + 2) .'</a>';
    if($page + 1 <= $total) $page1right = ' | <a href=catalog.php?page='. ($page + 1)
    .'>'. ($page + 1) .'</a>';
    ...
    ?>

    магазин на диване...
    http://www.php.ru/forum/viewtopic.php?t=30808#263199

    Devzirom, 14 Февраля 2011

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

    +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
    public static function create_folder ( $path, $rights = self::default_rights )
    	{
    		$result = true;
    		// Получаем список папок
    		$folders = explode( DIRECTORY_SEPARATOR, trim( self::get_absolute_path( $path ), DIRECTORY_SEPARATOR ) );
    		$exists = true;
    		// Ищем существующую папку
    		while ( $exists && sizeof( $folders ) )
    		{
    			$exists_folder[] = array_shift( $folders );
    			$exists = realpath( implode( DIRECTORY_SEPARATOR, $exists_folder ) );
    		}
    		if ( !file_exists( implode( DIRECTORY_SEPARATOR, $exists_folder ) ) )
    		{
    			array_unshift( $folders, array_pop( $exists_folder ) );
    		}
    		$parent = implode( DIRECTORY_SEPARATOR, $exists_folder );
    		unset( $exists_folder );
    		// поочередно создаем папки
    		foreach ( $folders as & $folder )
    		{
    			$parent .= DIRECTORY_SEPARATOR . $folder;
    			$result = mkdir( $parent, $rights );
    		}
    		clearstatcache( );
    		return $result;
    	}

    Вот что значит не знать про необязательный аргумент recursive у mkdir...

    GhOsTMZ, 14 Февраля 2011

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

    +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
    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
    <?php
    function pagination($page, $z, $url) 
       // номер стр, число страниц в табл, УРЛ)
       {
       if (!preg_match('/\\?/is', $url)) $url = $url.'?'; else $url = $url.'&';
       // если в адресе встречается ?, то в конце добавляем &, если нет - то ?
       
        echo "<div style='text-align:center;'> <a href='".$url."z=".$z."&&page=1'>Первая</a>&nbsp; &nbsp;";
        if ($page>1) print("<a href='".$url."z=".$z."&&page=".($page-1)."'>Предыдущая</a> &nbsp; &nbsp;");
            print ("Страница $page из $z &nbsp; &nbsp;");
            if ($page<$z) print("<a href='".$url."z=".$z."&&page=".($page+1)."'>Следующая</a>&nbsp; &nbsp;");
            echo "<a href='".$url."z=".$z."&&page=$z'>Последняя</a>";
            echo "<p style='margin-top:10px; margin-bottom:10px'>";
            
            for ($i = 1; $i <= $z; $i++) 
        if ($i == $page) echo "<span class='greenbig'> $i </span> &nbsp;";
        else echo "<a href='".$url."z=".$z."&&page=$i'>$i</a> &nbsp;"; 
            echo "</p></div>";
        }
     
     
    include('db.php');
    if(isset($_GET['page']))  $page=$_GET['page']; else $page="1";
    $plim=($page-1)*20;
    $query=mysql_query("SELECT * FROM zomplog_news ORDER BY `id` DESC LIMIT $plim, 20");
    while($row = mysql_fetch_array($query)) {
    $title = $row['title'];
    $text = $row['text'];
    $date = $row['date'];
     
    ?>
     
     
       <br><table class='panel'><tr class='phead'>
       <td><? echo "$title";?><td align='right'> <? echo "$date";?><tr><td colspan=2 class='pcontend'>
      <? echo "$text";?>
       <tr><td class='pend'>
       <td class='pend' align='right'></table>
     
     <?}
      $table = 'zomplog_news';
       if (isset($_GET['z'])) $z=$_GET['z']; else  
       {
       $r = mysql_query("SELECT COUNT(*) FROM $table");
       $z1 = mysql_result($r,0);
       $z = ceil($z1/20); ## z - общее число страниц
       }
    pagination ($page, $z, 'index.php');
     
    ?>

    qbasic, 13 Февраля 2011

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

    +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
    <?
    function strip_html_tags( $text )
    {
            $text = preg_replace(
                    array(
                            // Remove invisible content
                            '@<noindex[^>]*?>.*?</noindex>@siu',
                            '@<head[^>]*?>.*?</head>@siu',
                            '@<style[^>]*?>.*?</style>@siu',
                            '@<script[^>]*?.*?</script>@siu',
                            '@<object[^>]*?.*?</object>@siu',
                            '@<embed[^>]*?.*?</embed>@siu',
                            '@<applet[^>]*?.*?</applet>@siu',
                            '@<noframes[^>]*?.*?</noframes>@siu',
                            '@<noscript[^>]*?.*?</noscript>@siu',
                            '@<noembed[^>]*?.*?</noembed>@siu',
     
                            // Add line breaks before & after blocks
                            '@<((br)|(hr))@iu',
                            '@</?((address)|(blockquote)|(center)|(del))@iu',
                            '@</?((div)|(h[1-9])|(ins)|(isindex)|(p)|(pre))@iu',
                            '@</?((dir)|(dl)|(dt)|(dd)|(li)|(menu)|(ol)|(ul))@iu',
                            '@</?((table)|(th)|(td)|(caption))@iu',
                            '@</?((form)|(button)|(fieldset)|(legend)|(input))@iu',
                            '@</?((label)|(select)|(optgroup)|(option)|(textarea))@iu',
                            '@</?((frameset)|(frame)|(iframe))@iu',
                    ),
                    array(
                            ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
                            "\n\$0", "\n\$0", "\n\$0", "\n\$0", "\n\$0", "\n\$0",
                            "\n\$0", "\n\$0",
                    ),
                    $text );
     
            // Remove all remaining tags and comments and return.
            return strip_tags( $text );
    }

    qbasic, 13 Февраля 2011

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