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

    +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
    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
    function make_cat_options($pid='0',$selected='',$depth=1,$not='')
    {
    	global $cat_cache,$udb,$database,$admin;
    	if ( !is_array($cat_cache) )
    	{
    		$sql = $udb->query('SELECT * FROM '.$database['cat'].' ORDER BY orders ASC, cid ASC');
    		while ($row = $udb->fetch_array($sql))
    		{
    			$cat_cache[$row['pid']][$row['cid']] = $row;
    		}
    	}
    	$cache = $cat_cache;
    	$xaccess = explode(",",$not);
    	if(!isset($cache[$pid])) return;
    	while (list($parent,$category) = each($cache[$pid]))
    	{
    		if ( $this->cattpl != '' )
    		{
    			$a .= str_replace( 
    				array('{url}','{description}','{name}'),
    				array( 
    						$this->link_cat( $category[$this->sestype_cat()]),
    						$admin->superhtmlentities($category['description']),
    						str_repeat(' ',$depth-1)." ".$category['name']
    					),
    			
    				$this->cattpl );
    		}
    		else
    		{
    			$category['name'] = $this->hsc == 1 ? $admin->superhtmlentities($category['name']) : $category['name'];
    			unset($sel);
    			if ($category['cid'] == $selected)
    			{
    				$sel = 'selected="selected"';
    			}			       
    			if ( !in_array($category['cid'],$xaccess) )
    			{
    				if ( $category['disabled'] != 1 )
    				{
    					$a .= '<option value="'.($this->cat_name == 1 ? $this->link_cat($category[$this->sestype_cat()]) : $category['cid']).'" '.$sel.'>';
    					if ($depth > 1)
    					{ 
    						$a .= str_repeat("-",$depth-1)." ".$category['name']."</option>"."\n";
    					}
    					else
    					{
    						$a .= $category['name']."</option>";
    					}
    				}
    				else
    				{
    					$a .= '<optgroup label="'. str_repeat("-",$depth-1)." ".$category['name'].'">';
    					$closegroup = 1;
    				}
    			}
    		}
    		$a .= $this->make_cat_options($category['cid'],$selected,$depth+1,$not);
    		if ( $closegroup == 1 )
    		{
    			$a .= "</optgroup>\n";
    		}
    	} 
    	$udb->free_result($sql);
    	return $a;
    }

    qbasic, 06 Марта 2011

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

    +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
    function get_list_templ()
    {
    $list = array();
    $odir = opendir("../templetes");
    while (($rdir = readdir($odir)) != false)
    {
    if ($rdir !== '.' and $rdir !== '..' and !strpos($rdir, '.'))
    {
    echo $rdir.': ';
    $odir2 = opendir("../templetes/$rdir");
    while($rdir2 = readdir($odir2))
    if ($rdir2 !== '.' and $rdir2 != '..' and strpos($rdir2, '.'))
    {
    if ($rdir2 === 'index.php')
    {
    echo $rdir2."<br />";
    } else
    {
    
    echo 'No exits index.php<br />';
    }
    }
    }
    }

    qbasic, 06 Марта 2011

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    <input type="text" name="quantity- <?php echo $row['id']; ?>" size="2" style="text-align:center" value="<?php echo $_SESSION['cart'][$row['id']]['quantity']; ?>" id='inp_<? echo $er;?>' onBlur='calculate(this.value, "<?php echo $row['cena'];?>", "bdo_<? echo $er;?>")'/>
    
    <? 
    if ($_SESSION['cart'][$row['id']]['quantity'] != $_POST['quantity-'.$row['id']]) $_SESSION['cart'][$row['id']]['quantity'] = $_POST['quantity-'.$row['id']];

    qbasic, 06 Марта 2011

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

    +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
    <?
    $xml = xml_parser_create();
    xml_parser_set_option($xml, XML_OPTION_SKIP_WHITE,1);
    xml_parse_into_struct($xml, file_get_contents($url), $el, $fe);
    xml_parser_free($xml);
    
    for($i=0; $i<5; $i++){
       $m = $fe['ITEM'][$i];
       $title = $el[$m+1]['value'];
       $link = $el[$m+2]['value'];
       $time = $el[$m+4]['value'];
       $desc = mb_substr( $el[$m+3]['value'], 0, 80, 'UTF-8');
       echo '<br/><strong>'.$title.'</strong> <br/>['.
        $time.']<br/>'.$desc.'<br/><a href="'.$link.'">читать...</a>';
    }

    qbasic, 06 Марта 2011

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

    +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
    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
    /**
     * @class Session
     * @brief Класс для управления безопасностью на сайте.
     * тут еще многа инфы
     */
    // Отрывки из классы
    
     public static function auth($email, $password)
        {
        	$result = 0;
        	$email = strtolower($email);
    
            $dbh = DB::select("SELECT id, is_active, confirm_code FROM ".TB_USERS."
                              WHERE email='".$email."' AND password='".md5($email.$password)."' LIMIT 1");
    ...
    // Замечу что $email и $password получены при помощи мега крутой функции http://govnokod.ru/5901
    
     public static function get($mode = 0, $role = 0)
        {
            $result = false;
    
            list ($session_id, $user_id) = self::getcookie();
    
            if(!empty($session_id))
            {
                self::$id = $session_id;
    
                $dbh = DB::select("SELECT u.email, u.role FROM ".TB_SESSION." AS s LEFT JOIN ".TB_USERS." AS u ON s.user_id=u.id
                                  WHERE s.id='".$session_id."' AND s.user_id=".$user_id.($role > 0 ? " AND u.role&".$role : "")." LIMIT 1");
    ...
    
    protected static function getcookie()
        {
            $parts = explode(BOUND, (isset($_COOKIE[self::$name]) ? $_COOKIE[self::$name] : ""));
    
            if(sizeof($parts) != 2)
            {
                $parts = array("", 0);
            }
            else
            {
                $parts[0] = encode($parts[0]);
                $parts[1] = (int)$parts[1];
            }
    
            return $parts;
        }
    
    // А вот и encode
    function encode($value, $html_encode = true)
    {
        $value = trim((string)$value);
    
        if(empty($value)) return false;
    
        if($html_encode)
        {
            $value = htmlspecialchars($value, ENT_QUOTES);
        }
    
        $search  = array('/"/', "/'/", "/\\\\&quot;/", "/\\\\&#039;/", "/<\?/", "/\?>/");
        $replace = array("&quot;", "&#039;", "&quot;", "&#039;", "&lt;?", "?&gt;");
    
        return preg_replace($search, $replace, $value);
    }

    Улыбнула третья строка.

    winbackgo, 06 Марта 2011

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

    +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
    /**
     * Возвращает значение поля формы.
     * @param[in] name as string. Имя поля формы.
     * @return mixed
     */
    function GetItem($name)
    {
        $value = "";
    
        if(isset($_POST[$name]))
        {
            $value = $_POST[$name];
        }
        else if(isset($_GET[$name]))
        {
            $value = $_GET[$name];
        }
    
        return $value;
    }

    winbackgo, 06 Марта 2011

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

    +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
    const mime_list = array("any"   => "7z|aiff|asf|avi|bmp|csv|doc|fla|flv|gif|gz|gzip|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|ods|odt|pdf|png|ppt|pxd|qt|ram|rar|rm|rmi|rmvb|rtf|sdc|sitd|swf|sxc|sxw|tar|tgz|tif|tiff|txt|vsd|wav|wma|wmv|xls|xml|zip|ico",
                                "image" => "jpg|jpeg|gif|png|ico",
                                "flash" => "swf|flv",
                                "xml"   => "xml",
                                "price" => "txt|csv");
    
    // далее из того же класса
    public function is_mime_valid($realtype, $needtype = "any")
        {
            $realtype = trim($realtype);
    
            if(empty($realtype) || !isset($this->mime_list[$needtype])
               || !preg_match("/(".self::mime_list[$needtype].")/i", $realtype))
               return false;
    
            return true;
        }
    // конструктора там нет и никакой $this->mime_list не специализируется

    winbackgo, 06 Марта 2011

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

    +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
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    <?php
    class Cached_Query
    {
    
     function __construct()
     { 
      $mem_cache = new Memcache;
      $mem_cache->connect('localhost', 11211); 
       mysql_connect("localhost", "root", "");
      }
    
     function Query($query_text)
     {
      $ms_query = mysql_query("SELECT * FROM sometable WHERE somedata = `$query_text`");
      $query_data = mysql_fetch_array($ms_query);
      return $query_data;
     }
    
     function QueryCache($query_text, $seconds)
     {
      $query_data = $mem_cache->fetch("somedata", $query_text);
      if(!$query_data)
      {
       $ms_query = mysql_query("SELECT * FROM sometable WHERE somedata = `$query_text`");
       $query_data = mysql_fetch_array($ms_query);
       $mem_cache->add("somedata", $query_text, false, $seconds)
      }
      
      return $query_data;
     }
    
     function FetchArray($result)
     {
      foreach($result as $key)
      {
        echo $key;
      }
     }
    
    }
    ?>

    Напишите класс-обертку для работы с php_mysql (либо mysqli), реализуйщий функции кеширования с помощью memcached. Достаточно трех методов:
    Query($query_text);//обычный запрос
    QueryCache($query_text,$seconds);//кеширование запроса
    FetchArray($result);//вывод результатов

    Да говно-вопрос.

    varg242, 05 Марта 2011

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

    +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
    <table class="form_order_create form_order_create_check" >
      
        <tr> <? /* пробел */?>
          <td style="width:30px">&nbsp;</td>
          <td style="vertical-align:middle;width:30%;" colspan=2>
            <div class="name" style="padding-left:10px;">
              &nbsp;
            </div>
          </td>
        </tr>
      
        <? /* Номер заказа */?>
        <tr>
          <td style="width:30px">&nbsp;</td>
          <td style="vertical-align:middle;width:30%;">
            <div class="name" style="padding-left:10px;">
              <u>Номер заказа:</u>
            </div>
          </td>
          <td style="vertical-align:middle;">
            <div class="name" style="padding-left:10px;">
              №<?=$arResult["ORDER_ID"]?>
            </div>
          </td>
        </tr>
        
        <tr> <? /* пробел */?>
          <td style="width:30px">&nbsp;</td>
          <td style="vertical-align:middle;width:30%;" colspan=2>
            <div class="name" style="padding-left:10px;">
              &nbsp;
            </div>
          </td>
        </tr>
     
      </table>

    Язык конечно не php, но достойно.

    leonard, 05 Марта 2011

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function &_extract(&$array, $path) {
      $element = &$array;
      while(count($path)) {
        $key = array_shift($path);
        $element = &$element[$key];
      }
    
      return $element;
    }

    vectoroc, 05 Марта 2011

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