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

    +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
    // File: /controllers/register.php
    
    //......
    $sql = 'INSERT INTO `users` SET `ID`=NULL, `login`="'.mysql_real_escape_string(substr($_POST['login'], 0, 12)).'", `pass`= blah blah blah....';
    //......
    
    
    
    // File: /templates/default/index.tpl
    /*
    //... 
    <td><div>Hello, <b>{LOGIN}</b></div><!---- blah blah blah ---><div>Server time: <?php echo getCurrentTime();?></div>
    //
    */
    
    
    //File: /index.php
    
    //......
    $sql = 'SELECT * FROM `users` WHERE `id`=........';
    $data = SYS::$db->getDataRow($sql);
    if(sizeof($data)>0) {
          showTeplate(TEMPLATE_NAME, 'index', $data);
    }
    //......
    
    //Function showTeplate();
    
    function showTeplate($tpl_name, $file_name, $data) {
           $template_code = file_get_contents(TPL_PATH.'/'.$tpl_name.'/'.$file_name.'.'.TPL_EXT);
           foreach($data as $name=>$value) {
                  $template_code = str_replace('{'.strtoupper($name).'}', $value, $template_code);
           }
           
          //......
           eval($template_code);
          //......
    
    }

    Внимание, загадка! Найти уязвимость.

    jokz, 04 Августа 2011

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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $urt = 'uArts'; 
    $urt1 = 'искуств'; 
    $urt2 = 'сайт'; 
    alert($urt.$urt2.$urt1)//Соединим две переменные используем . 
    
    $us = 2; 
    $us2 = 9; 
    alert($us + $us2);// Сложение получим 11

    Автор писал первую статью для начинающих: http://uarts.ucoz.ru/load/veb_masteru_lt/php/php_rabota_s_peremennymi/17-1-0-25
    Но зачем alert из DS? :D

    Как вывести переменную?!

    есть много способов для создания сайтов используют echo или print и alert
    в Ds нужно с("elem")->caption

    и код выше =)

    TRANE73, 03 Августа 2011

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

    +170

    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
    $q = mysql_query("SELECT * FROM ".$prefix."_users WHERE id='$user_id'");
    
    $org = mysql_result($q,0,"org");
    $orginfo = mysql_result($q,0,"orginfo");
    $orgsite = mysql_result($q,0,"orgsite");
    $orgaddr = mysql_result($q,0,"orgaddr");
    $orgcity = mysql_result($q,0,"orgcity");
    $orgname = mysql_result($q,0,"orgname");
    $sendme = mysql_result($q,0,"sendme");
    $news_sendme = mysql_result($q,0,"news_sendme");
    $arend = mysql_result($q,0,"arend");
    $seller = mysql_result($q,0,"seller");
    $manufacter = mysql_result($q,0,"manufacter");
    $bank = mysql_result($q,0,"bank");
    $leasing = mysql_result($q,0,"leasing");
    $a_bus = mysql_result($q,0,"a_bus");
    $a_gruz = mysql_result($q,0,"a_gruz");
    $a_prec = mysql_result($q,0,"a_prec");
    $a_po_prec = mysql_result($q,0,"a_po_prec");
    $a_sr_tg = mysql_result($q,0,"a_sr_tg");
    ...

    В бесконечность и далее!!!

    invision70, 03 Августа 2011

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

    +163

    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
    public function executeQuery($sql, $return_format = 0) {
            $query = mysql_query($sql, $this->link) OR die(mysql_error());
    
            switch ($return_format) {
                case 1:
                    $query = mysql_fetch_assoc($query);
                    break;
                case 2:
                    $query = mysql_fetch_array($query);
                    break;
                case 3:
                    $query = mysql_fetch_row($query);
                    return $query[0];
                default:
                    return $query;
            }
    
            return $query;
        }

    Практично б*дь.... Советую весь класс посмотреть...потом на их сайт перейти, компания ведь крутая ;D...
    http://www.phpclasses.org/browse/file/35772.html

    AlexanderC, 03 Августа 2011

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

    +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
    /**
         * Xml Request
         *
         * @param int $hotel_id
         * @param int $hotel_id
         * @param int $hotel_id
         * @return array $cc_type of
         */
    public function XmlStringForBokingFactura($transaction_id, $block, $begin_date, $end_date, $hotel_code, $guest_qty, $smoking, $cc_number, $cc_cardholder, $cc_type, $cc_expiration_date, $cc_cvc, $NameBooker, $LastNameBooker, $guestLastname, $guest_city, $guest_country, $guest_telephone, $email, $additionalEmail, $fake=1, $affiliate_id, $affiliate_pswd, $is_hash = null, $arrival_time, $dialog) {
        ...
        ...
        ...
        $mail = new MailMime($build_params);
        $mail->setHeader($from_email, $subject, array('charset' => 'UTF-8'));
        $mail->setTXTBody($url);
        $mail->setHTMLBody($url);
        $mail->send($to);
        $mail->setHeader($from_email, $subject, array('charset' => 'UTF-8'));
        $mail->setTXTBody($data);
        $mail->setHTMLBody($data);
        $mail->send($to2);
    
        ...
    }

    переменные $to и $to2 нигде в функции никак не объявляются. да и вообще функция шикарная.

    shmaltorhbooks, 03 Августа 2011

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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    /*
    * Yeah, this is the database engine. It's pretty bad, uses files to store peers.
    * Should be easy to rewrite to use SQL instead.
    *
    * Yes, sometimes collisions may occur and screw the DB over. It might or might not
    * recover by itself.
    */

    Я думаю, сам код можно даже не приводить.

    popoffka, 03 Августа 2011

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

    +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
    function getMaxDays($m, $y)
    {
            switch($m+1) {
                    case 1:
                    case 3:
                    case 5:
                    case 7:
                    case 8:
                    case 10:
                    case 12:
                            $days = 31;
                            break;
                    case 4:
                    case 6:
                    case 9:
                    case 11:
                            $days = 30;
                            break;
                    default:
                            if($y%100==0) {
                                    $days = 29;
                            } else {
                                    $days = 28;
                            }
                            break;
            }
            return $days;
    }

    http://php.net/manual/en/function.cal-days-in-month.php

    nergalic, 03 Августа 2011

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if(preg_match("/^(\d\d\d\d)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)$/", $dt, $m)) {
    } elseif(preg_match("/^(\d\d\d\d)-(\d\d)-(\d\d)$/", $dt, $m)) {
            $isH = false;
            $isM = false;
            $isS = false;
    }

    facepalm...

    nergalic, 03 Августа 2011

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

    +163

    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
    $param='72,pId,kladez;79,item,conf'; //Настройки скрипта
    $temp=explode(';',$param);
    $param=array();
    foreach($temp as $item){
     $tmp=explode(',',$item);
     $param[$tmp[0]]=array('mode'=>$tmp[2],'get'=>$tmp[1]);
    }
    //$param=Array ( [72] => Array ( [mode] => kladez [get] => pId ) [79] => Array ( [mode] => conf [get] => item ) )
    
    $field=array();
    if(isset($_POST['redactor'])){if($_POST['redactor']!=''){if(isset($_GET['id']) && (int)$_GET['id']>0 && isset($param[(int)$_GET['id']]) && isset($_SESSION['user']['id']) && (int)$_SESSION['user']['id']>0){ //вот это место меня выжигает просто
    	$field['user']=(int)$_SESSION['user']['id'];
    	$field['date']=date("Y-m-d H:i:s");
    	$field['comment']=$_POST['redactor'];
    	$field['mode']=$_GET[$param[(int)$_GET['id']]['mode']]
    	$field['id_page']=$_GET[$param[(int)$_GET['id']]['get']]
    	$field['parent']=0;
    }else{
     //Нас хакнуть попробовали
    }}else{
    //пустая форма ошибка
    }}
    //что-то дальше делаем

    Имеются ссылки вида http://example.com/index.php?id=72&pId=21 и http://example.com/index.php?id=79&item=2 где pId и item идентификаторы конкретной статьи.

    Agel_Nash, 03 Августа 2011

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

    +154

    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
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    function get_sql($_POST){
    $fields = file("inc/".$_POST['table'].".fields");
    $id=$_POST['id'];
    
    foreach($fields as $ff){
        $f=explode(" ",strtolower($ff));
        $fn=str_replace("`","",$f[0]);
    
        if($id){
         if($f[0]!='`id`'){
    
            if(strlen($sql)>0){
            if($fn=='del_data'&&$new_data) $sql.=",";
            else if($fn!='del_data') $sql.=",";
            }
    
                if($fn=='del_data'&&$new_data) $sql.=$f[0]."=";
                else if($fn!='del_data')$sql.=$f[0]."=";
    
                    if($_POST[$fn]){
                                   if(strpos($f[1],'archar')) {
                                            if($fn=='pass')$sql.="'".md5(md5($_POST[$fn]).md5('salt'))."'";
                                            else $sql.="'".$_POST[$fn]."'";
                                   }
                                if(strpos($f[1],'loat')) $sql.="'".(floatval(str_replace(",",".",$_POST[$fn]))?floatval(str_replace(",",".",$_POST[$fn])):0)."'";
                                if(strpos($f[1],'nt')) {
                                    if($_POST[$fn]=='on')$sql.="'1'";
                                    else if($fn=='user_id')$sql.="'".$u['id']."'";
                                    else $sql.="'".(intval($_POST[$fn])?intval($_POST[$fn]):0)."'";
                    }
                    if(strpos($f[1],'ate')) {
                            $sql.="'".$_POST[$fn]."'";
                    }
            }
    
            else if($fn=='user_id')$sql.="'".$u['id']."'";
            else if(strpos($f[1],'nt')) $sql.="'0'";
            else if(strpos($f[1],'loat')) $sql.="'0'";
            else if(strpos($f[1],'archar')) $sql.="''";
            else if(strpos($f[1],'ate')) {
    
                if($fn!='del_data') $sql.="'".get_date()."'";
            }
        }
        }
     ////////////////////////////////////////////////////////////////////////////////////////////////////
        else {
            if($f[0]=='`id`')$sql.="NULL";
            else
        {
        if($_POST[$fn]){
           if(strpos($f[1],'archar')) {
                    if($fn=='pass')$sql.=",'".md5(md5($_POST[$fn]).md5('salt'))."'";
                    else $sql.=",'".$_POST[$fn]."'";
           }
           else if(strpos($f[1],'loat')) $sql.=",'".(floatval(str_replace(",",".",$_POST[$fn]))?floatval(str_replace(",",".",$_POST[$fn])):0)."'";
           else if(strpos($f[1],'nt')) {
                if($_POST[$fn]=='on')$sql.=",'1'";
                else $sql.=",'".(intval($_POST[$fn])?intval($_POST[$fn]):0)."'";
            }
           else if(strpos($f[1],'ate')) {
                $sql.=",'".$_POST[$fn]."'";
            }
    
        }
        else if($fn=='user_id')$sql.=",'".$u['id']."'";
        else if(strpos($f[1],'nt')) $sql.=",'0'";
        else if(strpos($f[1],'loat')) $sql.=",'0'";
        else if(strpos($f[1],'archar')) $sql.=",''";
        else if(strpos($f[1],'ate')) {
                if($fn!='del_data') $sql.=",'".get_date()."'";
        }
        }
        }
    
    }
    if(!$id)$sql="insert into `".$_POST['table']."` values(".$sql.")";
    else $sql="update  `".$_POST['table']."` set ".$sql." where `id`='$id'";
    
    $ok=get_mysql_result($sql);
     return $ok;
    }

    Стыдно, но нашел это в одном из первых проектов... :S

    coderov, 02 Августа 2011

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