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

    +166

    1. 1
    2. 2
    3. 3
    public function getPreviousId(){
    	return $this->getId() - 1;
    }

    А вот так из модели можно возвратить айдишник предыдущей записи, и ничего страшного что запись с этим айдишником может не существовать в базе

    govno, 19 Апреля 2011

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

    +156

    1. 1
    2. 2
    3. 3
    list($year, $month, $day) = split('[/.-]', $r['data']);
    //$month = $man[(int)$month];
    $date = "$day.$month.$year";

    DATE_FORMAT

    De-Luxis, 19 Апреля 2011

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

    +158

    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
    <script type="text/javascript"> 
         jQuery('.container').cycle({
        fx:     'scrollHorz',
        prev:   '#prev2',
        next:   '#next2',
        timeout: 0});
        </script>
        <img id="prev2" src="<?=$this->getSkinUrl('images/leftarr.png')?>" alt="Left Arrow" /> 
    <?php     foreach ($_gallery as $_image)
            $__gallery[] = $_image;
    ?>    
        <ul class="container">
        <?php
    
        for($i = 0;$i < count($__gallery);$i++):
            $_image = $__gallery[($i) % count($__gallery)];
        ?>
            <li>
                <a href="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'image', $_image->getFile()); ?>" onclick="slide('<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'image', $_image->getFile()) ?>',<?php echo ($s = isset($s) ? ++$s : 0) ?>,'<?php echo $this->getGalleryUrl($_image) ?>'); return false;"><img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->resize(90); ?>" alt="<?php echo $this->htmlEscape($_image->getLabel()) ?>" title="<?php echo $this->htmlEscape($_image->getLabel()) ?>" /></a>
            </li>         
        <?php endfor; ?>
        </ul>
        <ul class="container">
        <?php
    
        for($i = 0;$i < count($__gallery);$i++):
            $_image = $__gallery[($i+1) % count($__gallery)];
        ?>
            <li>
                <a href="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'image', $_image->getFile()); ?>" onclick="slide('<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'image', $_image->getFile()) ?>',<?php echo ($s = isset($s) ? ++$s : 0) ?>,'<?php echo $this->getGalleryUrl($_image) ?>'); return false;"><img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->resize(90); ?>" alt="<?php echo $this->htmlEscape($_image->getLabel()) ?>" title="<?php echo $this->htmlEscape($_image->getLabel()) ?>" /></a>
            </li>         
        <?php endfor; ?>
        </ul>
            <ul class="container">
        <?php
    
        for($i = 0;$i < count($__gallery);$i++):
            $_image = $__gallery[($i+2) % count($__gallery)];
        ?>
            <li>
                <a href="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'image', $_image->getFile()); ?>" onclick="slide('<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'image', $_image->getFile()) ?>',<?php echo ($s = isset($s) ? ++$s : 0) ?>,'<?php echo $this->getGalleryUrl($_image) ?>'); return false;"><img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->resize(90); ?>" alt="<?php echo $this->htmlEscape($_image->getLabel()) ?>" title="<?php echo $this->htmlEscape($_image->getLabel()) ?>" /></a>
            </li>         
        <?php endfor; ?>
        </ul>
            <ul class="container">
        <?php
    
        for($i = 0;$i < count($__gallery);$i++):
            $_image = $__gallery[($i+3) % count($__gallery)];
        ?>
            <li>
                <a href="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'image', $_image->getFile()); ?>" onclick="slide('<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'image', $_image->getFile()) ?>',<?php echo ($s = isset($s) ? ++$s : 0) ?>,'<?php echo $this->getGalleryUrl($_image) ?>'); return false;"><img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->resize(90); ?>" alt="<?php echo $this->htmlEscape($_image->getLabel()) ?>" title="<?php echo $this->htmlEscape($_image->getLabel()) ?>" /></a>
            </li>         
        <?php endfor; ?>
        </ul>

    слайдер с прокруткой с помощью цайкла

    jjonghyo, 19 Апреля 2011

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    {{sectionelse}}
                        <script language="javascript">
                          window.location = '/megasection/megapage.html?step='+{{if $step eq '2'}}'3'{{else}}'1'{{/if}};
                        </script>
    {{/section}}

    PHP, Smarty, редиректы уже не в моде

    govno, 18 Апреля 2011

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

    +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
    function is_url($url) { 
    if(preg_match("/\./", $url) && preg_match("/http:\/\//i", $url) && preg_match("/.txt$/i", $url) && preg_match("/\//", str_replace("http://" , "", $url))) return 1;   
    else return 0; }
    function check_value($value) {
    if (!is_numeric($value) || $value>20 || $value<1) die ('Количество не число или число учеток превышает 20. Ну, или меньше 1.<br><a href="' . $_SERVER['PHP_SELF'] . '?act=mass">Назад</a>'); }
    function regnloc() {
    $get = reg();
    header("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?" . $get); }
    
    switch ($_GET['act']) { 
    case 'reg':
    regnloc();
    break; 
    
    case 'mass':
    // http://govnokod.ru/6376
    break;
    
    case 'file':
    if (!$_POST['get']) die ('Отсутствуют данные для записи'.$href);
    $content = "Сгенерировано ".date("d.m.y H:i:s")."\n";
    if ($_POST['link']) $content .= "Логины взяты по ссылке: ".$_POST['link']."\n";
    $content .= $_POST['get'];
    file_put_contents('download.txt', $content);
    header("Location: download.txt");
    break;
    
    default:
    if (($_GET['login']) && ($_GET['pass'])) echo $_GET['login'].' - '.$_GET["pass"].'<br><a href="http://сайт.ru/user/search/?a='.rand(1000, 9999).'&age0=&age1=&sex=0&ll=0&online=0&sort=0&login='.$_GET['login'].'" target="_blank">Полюбоваться</a><br><br>';
    view_form("?act=reg");
    echo '</form><a href="' . $_SERVER['PHP_SELF'] . '?act=mass">Массовая рега</a>'; }

    Вариации на тему http://www.snippy.ru/snippet/213/ (http://govnokod.ru/5597)
    Вдогонку к предыдущему.
    Это - регистратор учетных записей на одной известной мобильной социальность сети.
    Что поразительно - спустя полтора года это до сих пор работает.

    Бонусом еще немного содомии.

    И, да-да, внимательные читатели могли заметить еще в 6376 parse_str(reg()).
    reg() возвращает результаты строкой вида return "login=$login&pass=$pass";

    7ion, 15 Апреля 2011

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

    +158

    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
    case 'mass':
    $href = '<br><a href="' . $_SERVER['PHP_SELF'] . '?act=mass">Назад</a>';
    if ($_GET['step']) {
    if (($_POST['step']) && ($_POST['link'])) die ('Пожалуйста, введите только что-то одно - кол-во или ссылку'.$href);
    if ((!$_POST['step']) && (!$_POST['link']) && ($_GET['step'] == 1)) {
    if ($_POST['code']) regnloc();
    die ('Пожалуйста, введите что-нибудь - кол-во или ссылку'.$href);}
    if ($_POST['step']) $mode = 'steps';
    if ($_POST['link']) $mode = 'link';
    if ($_GET['mode']) $mode = $_GET['mode'];
    if (!$mode) die ('Привет юным хакерам!'.$href);
    check_value($_GET['step']);
    $step = $_GET['step'];
    if ($mode == 'steps') {
    if ($_POST['step']) {
    check_value($_POST['step']);
    $end = $_POST['step']; } 
    else {
    check_value($_GET['end']);
    $end = $_GET['end'];}
    parse_str(reg()); 
    $get = "$login - $pass\n".$_POST['get']; }
    if ($mode == 'link') {
    if (is_url($_POST['link'])) {
    $strings = file($_POST['link']);
    $end = count($strings);
    check_value($end);
    $arrstep = $step - 1;
    if (strlen(trim($strings[$arrstep])) <= 15) { parse_str(reg(trim($strings[$arrstep])));
    $get = "$login - $pass\n".$_POST['get']; }
    else { $error = 1; $get = $_POST['get']; }}
    else { die ('Ссылка неверна или указывает не на .txt файл'.$href);} }
    $step++;
    if ($step <= $end) {
    if ($error) echo '<div style="color:red;">Предыдущая учетка не была зарегана - ник более 15-ти символов</div><br>';
    echo "Учетка $step из $end<br>";
    view_form("?act=mass&mode=$mode&step=$step&end=$end"); }
    else { 
    echo '<b>Завершено!</b><br><a href="' . $_SERVER['PHP_SELF'] . '?act=mass">Повторить</a><br><br><form action="?act=file" method="post">Ваши учетки:<br><input type="submit" value="Скачать файлом">'; }
    echo '<br><textarea name="get" rows="10" cols="33">'.$get.'</textarea><input type="hidden" name="link" value="'.$_POST['link'].'"></form>';} 
    else {
    view_form("?act=mass&step=1");
    echo '<br><br><b>Опции массреги</b><br>Введите кол-во учеток: <input type="text" name="step" size="2" maxlength="2"><br>или ссылку на txt-файл с никами:<br><input type="text" name="link"><br><br><a href="' . $_SERVER['PHP_SELF'] . '">Обычная рега</a></form>'; }
    break;

    7ion. Начало.
    Написано примерно летом 2009 года.
    Помнится, я еще недоумевал - почему мой код называют страшным.

    7ion, 15 Апреля 2011

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

    +155

    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
    /* 
      где-то в 
      /includes.php
    */
    
    function __autoload($class_name) {
        if ($class_name[0] == 'm'){
            $m = DOCROOT . APPBASE . 'Models/' . substr($class_name,1) . '.php';
            if(defined('DEBUG')) echo 'autoload model class'.$m.'<br/>';
            require_once $m;
        } elseif ($class_name[0] == 'c'){
            $c=DOCROOT . APPBASE . 'Controllers/' . substr($class_name,1) . '.php';
            if(defined('DEBUG')) echo 'autoload controller class'.$c.'<br/>';
            require_once $c;
        }
    }
    
    /* 
      где-то в 
      /Controllers/Data.php
    */
    class cData extends controller {
    /* ... */
    }
    
    
    /* 
      где-то в 
      /Models/Data.php
    */
    class mData extends model {
    /* ... */
    }

    каждый программист обязан написать свой MVC и свой ActiveRecord

    RomaShka, 15 Апреля 2011

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

    +151

    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
    if(get_magic_quotes_gpc()) {
        deslash($_GET);
        deslash($_POST);
    }
    
    /*
     * function deslash(&$a)
     * убирает слеши из данных извне
     */
    function deslash(&$a) {
        if(defined('DEBUG'))echo '<br/>deslashing: '.print_r($a,true).'<br/>';
        foreach($a as $k=>$v)
            if (is_array($v)) {
                deslash($a[$k]);
            } else {
                if(defined('DEBUG')) echo 'was: '.$k.' => '.$v.'<br/>';
                $a[$k] = stripslashes($v);
                if(defined('DEBUG')) echo 'become: '.$k.' => '.$a[$k].'<br/>';
            }
    }

    Слэши не пройдут!

    RomaShka, 15 Апреля 2011

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

    +177

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    switch ($row['active']) {
                case '1':
                    $st = '<font color="#008000">Вкл.</font></a>';
                    break;
                case '0':
                    $st = '<font color="#FF0000">Выкл.</font>';
                    break;
    }

    Замена if свитчем.

    Мартин, 14 Апреля 2011

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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $host = str_replace( "www.", "", getenv( "HTTP_HOST" ) );
    if ( $host != "" )
    {
       exit();
    }

    partizan22, 14 Апреля 2011

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