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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    $e=mysql_fetch_assoc(mysql_query(" select * from conf_news where razdel='{$_GET["kind"]}' AND pub='yes' order by `date` desc limit 1 ")) ;
    $max_year=substr($e["date"],0,4);
    $e=mysql_fetch_assoc(mysql_query(" select * from conf_news where razdel='{$_GET["kind"]}' AND pub='yes' order by `date` limit 1 ")) ;
    $min_year=substr($e["date"],0,4);

    Как определить минимальную и максимальную дату в списке новостей? А вот как!
    Да, кстати, $_GET нигде не проверяется на SQL-инъекцию.

    (с) разработка под названием "CMS9"

    may_cat, 24 Декабря 2010

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

    +168

    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
    function getAlphabetList($list = null)
    {   
        $alphabet = split(' ', 'A B C D E F G H I J K L M N O P Q R S T U V W X Y Z');
    
        foreach($alphabet as $letter)
        {
            $has_letter = false;
            if(is_array($list))
            {
                foreach ($list as $value) 
                {
                        if(substr(strtoupper($value),0,1) == strpos($letter,$value,1))
                        {
                            $has_letter = true;
                        }                   
                }
            }
            
            if($has_letter)
            {               
                $output .= '<a href="?letter='.$letter.'">'.$letter.'</a> ';
            } else {
                $output .= $letter.' ';
            }
        }
        return $output;
    }

    Шерстим список записей, определяем, на какие буквы они начинаются, и для имеющихся букв генерируем гиперссылки. Мужика попросили разобраться, почему каталог на 126000 записей тормозит при отображении, и он увидел в коде это.
    http://thedailywtf.com/Articles/Thorough-Letter-Checking.aspx

    telnet, 24 Декабря 2010

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

    +144

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    <?php
    
    error_reporting(E_ALL);
    if (isset($_GET["src"])) {
    if (stripos($_GET["src"], "http://") !== false || stripos($_GET["src"], "https://") !== false) { 
    die("Анонимус, пошёл на /*
    вырезано
    */
    if($ext == "jpg" or $ext == "jpeg"){
        $img = imagecreatefromjpeg($src);
    }

    защита от инклудов по HTTP от нашего любимого анального клоуна lstem aka komprenda

    Анонимус, 24 Декабря 2010

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    case "exit":
                unset($_SESSION["SITE_ADMIN"]);
                header("location: {$_SERVER["PHP_SELF"]}");
                die;
            break;

    выход "по-мишустински"
    не знаю как вам, а я словил лулзы

    цопырайты уходят komprenda, он же "Istem"

    Lure Of Chaos, 24 Декабря 2010

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

    +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
    $src = $_GET["src"];
    $w = $_GET["w"];
    $h = $_GET["h"];
    $q = $_GET["q"];
    $info = pathinfo($src);
    $ext = $info["extension"];
    if($ext == "jpg" or $ext == "jpeg"){
        $img = imagecreatefromjpeg($src);
    }
    else if($ext == "gif"){
        $img = imagecreatefromgif($src);
    }
    else if($ext == "png"){
        $img = imagecreatefrompng($src);
    }
    $x = $w / imagesx($img);
    $y = $h / imagesy($img);
    $k = ($x > $y) ? $y : $x;
    $nw = intval(imagesx($img) * $k);
    $nh = intval(imagesy($img) * $k);
    $img1 = imagecreatetruecolor($nw, $nh);
    // $img1 = imagecreatefromjpeg("bj.jpg");
    imagecopyresampled($img1, $img, 0, 0, 0, 0, $nw, $nh, imagesx($img), imagesy($img));
    header("Content-type: image/jpeg");
    imagejpeg($img1, null, $q);
    imagedestroy($img);
    imagedestroy($img1);

    Кусман отборного калища руки Великого уё... Гудвина =)

    Ice, 23 Декабря 2010

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

    +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
    <?php
    switch(func_num_args())
    {
        case 1:
            $$class = new $class(func_get_arg(0));
        break;
        
        # .... 
                    
        case 7:
            $$class = new $class(func_get_arg(0), func_get_arg(1), func_get_arg(2), func_get_arg(3), func_get_arg(4), func_get_arg(5), func_get_arg(6));
        break;
                    
        default:
            $$class = new $class();
        break;
    } 
    ?>

    Боюсь подумать о 10 и более передаваемых переменных в конструктор класса

    MoLe-X, 23 Декабря 2010

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if(blya_check($baba_id))
    {
    	mysql_query("update {$prefX}actions set `count`=`count`+1 where id='{$baba_id}'");
    	blya_log($baba_id);
    }

    De-Luxis, 22 Декабря 2010

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

    +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
    $link = 'http://www.logofon.ru/xml/ips.xml';
    
    $file = win_to_utf(file_get_contents($link));
    
    $file = trim(substr((substr($file,0,strripos($file,'</operators>'))),(stripos($file,'<operators>') + 11)));
    
    #echo substr_count($file,'<operator').'<br />';
    
    #preg_match_all('|\<operator(.*)\>(.*)\<\/operator\>|sUu',$file,$res);
    #array_dump($res);
    
    preg_match_all('|\<operator id="([0-9]*)" name="([[:space:]a-zA-Zа-яА-ЯёЁ0-9-(){}_.:]*)" label="([[:space:]a-zA-Z0-9]*)" tld="([a-zA-Z0-9]*)" country="([[:space:]a-zA-Zа-яА-Я0-9-(){}_.]*)" publish="([0-9]*)"\>(.*)\<\/operator\>|Usu',$file,$result);
    
    
    
    //-- Количество операторов
    $count_oper = count($result[0]);
    
    //-- Массив операторов
    $operators = array();
    
    //-- Запускаем цикл
     for($i = 0;$i < $count_oper; $i ++)
    {
    //-- Массив текущего оператора
    $operators[$i] = array();
    
    $operators[$i]['id'] = $result[1][$i];
    $operators[$i]['name'] = $result[2][$i];
    #$operators[$i]['label'] = $result[3][$i];
    $operators[$i]['tld'] = $result[4][$i];
    $operators[$i]['country'] = $result[5][$i];
    
    
    
    //-- Создаем базы IP
    $operators[$i]['ip'] = array();
    
    preg_match_all('|\<range ip1="([0-9]{10})" ip2="([0-9]{10})" mode="([0-9]*)" \/\>|Usu',$result[7][$i],$result2);
    #echo '<b>#'.($i + 1).'.</b>'.htmlspecialchars($result[7][$i]).'<br />';
    #array_dump($result2);
    
    //-- Количество диапазанов для текущего опера
    $count_ip = count($result2[0]);
    
    //-- Еще один цикл
      for($j = 0;$j < $count_ip; $j ++)
     {
     	query("INSERT INTO `$db[prefix]ips` SET `name`='{$operators[$i]['name']}',`id_op`='{$operators[$i]['id']}',`country`='{$operators[$i]['country']}',`tld`='{$operators[$i]['tld']}',`ip1`='{$result2[1][$j]}',`ip2`='{$result2[2][$j]}' ")or my_error();
    # $operators[$i]['ip'][$j] = array($result2[1][$j],$result2[2][$j]);
    #echo long2ip($result2[1][$j]).' --- '.long2ip($result2[2][$j]).'<br />';
     }
    
    }
    
    
    echo 'Операторов после : <b>'.($count_op_after = mysql_num_rows(query("SELECT COUNT(*) FROM `$db[prefix]ips` GROUP BY `id_op` "))).'</b><br />';
    echo 'Диапазонов после : <b>'.($count_di_after = mysql_result(query("SELECT COUNT(*) FROM `$db[prefix]ips` "),0)).'</b><br />';

    Парсинг диапазонов IP мобильных операторов

    Morgan, 22 Декабря 2010

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