1. 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)
  2. 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)
  3. 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)
  4. PHP / Говнокод #5889

    +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
    <html> 
    <head>
    <title>Калькулятор</title> 
    </head>
    <body>
    <?
    function show()
    {
    global $action, $result, $first, $second;
    ?>
    <FORM method="GET" action="">
    <input type="text" name="first">
    <input type="text" name="second">
    <table>
    <tr>
    <td><input type="submit" name="action" value="sum"></td>
    <td><input type="submit" name="action" value="min"></td>
    <td><input type="submit" name="action" value="mult"></td>
    </tr>
    <tr>
    <td><input type="submit" name="action" value="dev" ;></td>
    <td><input type="submit" name="action" value="stepen";></td>
    <td><input type="submit" name="action" value="procent";></td>
    <td><input type="submit" name="action" value="koren";></td>
    </tr>
    </table>
    </form>
    <?
    }
    function calc() 
    { 
    global $action, $result, $first, $second; 
    switch($action)
    {
    case "sum": $result = $first+$second; 
    break;
    case "min": $result = $first-$second; 
    break;
    case "mult": $result = $first*$second; 
    break;
    case "dev":
    if (!$second) 
    {
    exit("Извините, программа не может выполнить действие: на ноль делить нельзя");
    }
    $result=$first/$second; 
    break;
    case "procent": $result = $first*($second/100); 
    break;
    case "stepen": $result = pow($first, $second); 
    break;
    case "koren": $result = pow($first,0.5); 
    break;
    }
    ?>
    <b> <? echo $result; ?> </b> 
    <?
    }
    if ($action) 
    calc(); 
    else show();
    ?>
    </body> 
    </html>

    qbasic, 04 Марта 2011

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

    +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
    /**
         * 
         * Remove single symbols
         * string $text
         */
        public function removeSingleSymbols($text)
        {
            mb_internal_encoding("UTF-8");
            $searchQuery = str_replace('"', '', $text);
            $arr = explode(" ", $searchQuery);
           
            $flag = false;
            foreach ($arr as $word){
                if(mb_strlen($word) > 1){
                    if(flag){
                        $searchText .= " ";
                    }
                    $flag = true;
                    $searchText .= $word;
                }
            }
            $searchText = trim($searchText);
            if($flag){
               $searchText = '"' . $searchText . '"';
            }else{
               $searchText = '';
            }
            
            return $searchText;
        }

    blackray, 04 Марта 2011

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

    +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
    # Получаем историю активации карт пользователя
    		$query = mysql_query("CENSORED") or die(mysql_error());
    		$usercount=mysql_numrows($query);
    
    		# Добавляем бонусы для каждой 10-й и 100-й карты
    		for ($i=0; $i<=1000; ($i+=10)) // переменная $i изменяется от 1 до 5. В скобках { ... } заключена одна итерация (заход) цикла.
    		{
    		$g=$i-1;
    		if($g=="-1")
    		{
    		}
    		else
    		{
    			switch($usercount)
    			{
    			case "$g":
    			if($g=="99" OR $g=="199" OR $g=="299" OR $g=="399" OR $g=="499" OR $g=="599" OR $g=="699" OR $g=="799" OR $g=="899" OR $g=="999")
    			{
    			# Добавляем бонусы каждой 100-й карте
    			$query = mysql_query("CENSORED");
    			$query = mysql_query("CENSORED");
    			$query = mysql_query("CENSORED");
    			}
    			else
    			{
    			# Добавляем бонусы каждой 10-й карте
    			$query = mysql_query("CENSORED");
    			$query = mysql_query("CENSORED");
    			$query = mysql_query("CENSORED");
    			}
    			break;
    			header("Location: $refer?err=ok");
    			exit;
    			}
    		}
    		}

    Нашел этот код в одном из проектов, поддержкой которого пришлось заниматься. Это сервис в котором пользователь активирует бонусные карты. Таким чудесным образом автор учитывал дополнительные бонусы за каждую 10-ю и 100-ю карту... Авторское форматирование сохранено. SQL запросы пришлось спрятать.

    kostj, 04 Марта 2011

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

    +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
    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
        <title>Сайт Управления безопасности информационных технологий</title>
      </head>
      <body>
    <?php
    echo "You will be redirected after 5 seconds";
    sleep(5);
    header("Location: https://itsdhub");
    ?>
      </body>
    </html>

    Найдено в fido7.ru.php.
    Хотел сделать с помощью PHP редирект с таймаутом.

    Считал, что сначала пользователь увидит сообщение "You will be...", а через
    пять секунд сработает header. Hо получается так, что сообщение в браузере не
    выводится, а просто идет пятисекундная задержка с последующим срабатыванием
    header. Почему? Что я не так сделал?

    0__1, 04 Марта 2011

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

    +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
    $list_n_price[] = $n_price;
    
    
     
    ?>
    
    
    		<? } ?>
    
    <?
    
    
    
    
    
    for ($n_ar = 0; (count($list) - $n_ar) >= 4; $n_ar +=4) {

    это человек писал ? 0_о

    tranquillity, 03 Марта 2011

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

    +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
    <? while ($cat = db_fetch_object($qid_c)) { ?>
    <?
    $n_p_id = $cat->id;
    $n_p = $cat->name;
    $list[] = "";
    $list_n_p_id[] = $n_p_id;
    $list_n_p[] = $n_p;
    ?>
    <? } ?>
    
    <table>
    <?
    for ($n_ar = 0; (count($list) - $n_ar) >= 4; $n_ar +=4) {
    
    
    
    $first = $list[$n_ar];
    $second = $list[$n_ar + 1];
    $third = $list[$n_ar + 2];
    $forth = $list[$n_ar + 3];
    
    $first_n_p_id = $list_n_p_id[$n_ar];
    $second_n_p_id = $list_n_p_id[$n_ar + 1];
    $third_n_p_id = $list_n_p_id[$n_ar + 2];
    $forth_n_p_id = $list_n_p_id[$n_ar + 3];
    
    
    
    
    $first_n_p = "<a href=../collection/?id=$first_n_p_id>$list_n_p[$n_ar]</a>";
    $n_ar1 = $n_ar + 1;
    $second_n_p = "<a href=../collection/?id=$second_n_p_id>$list_n_p[$n_ar1]</a>";
    $n_ar2 = $n_ar + 2;
    $third_n_p = "<a href=../collection/?id=$third_n_p_id>$list_n_p[$n_ar2]</a>";
    $n_ar3 = $n_ar + 3;
    $forth_n_p = "<a href=../collection/?id=$forth_n_p_id>$list_n_p[$n_ar3]</a>";
    
    
    
    
    print "<tr class=collection>" . "<td class=collection1>" . $first_n_p . "</td>" . "<td class=collection2>" . $second_n_p . "</td>" . "<td class=collection3>" . $third_n_p . "</td>" . "<td class=collection4>" . $forth_n_p . "</td>" . "</tr>";
    
    
    }
    ?>

    ну так нужно уметь!

    tranquillity, 03 Марта 2011

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

    +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
    function get_products($category_id=0) {
    /* get all the products under this category */
    
    	$qid = db_query("
    	SELECT
    		 p.id
    		,p.name
    		,p.description
    		,p.price
    		,p.on_special
    		,p.images
                    ,p.big_image
                    ,p.price2
                    ,p.price3 
    		,pc.category_id
    	FROM
    		 products p
    		,products_categories pc
    	WHERE p.id = pc.product_id
    		AND pc.category_id = $category_id
    ORDER BY p.name
    	");
    
    	return $qid;
    }
    ?>
    <h2><? print_category_tree_collection($id)?></h2>
    <table border=0 bordercolor=white>
    <tr><td class=h2>
                      <? if (db_num_rows($qid_c) == 0) { ?>
     			<? while ($cat = db_fetch_object($qid_c)) { ?>
                    <li><a href="../collection/?id=<?=$cat->id?>"><? pv($cat->name) ?></a>
               	<? } ?>
                    <? } ?>
    </td>
    </tr>

    ну где-то так нужно писать :)

    tranquillity, 03 Марта 2011

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