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

    +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
    <?php
    class SQLInjection
    {
        private function filter(&$query)
        {     
            $sql_inj = array("'", ";", "/**/", "/UNION/", "/SELECT/", "DELETE", "AND" "AS ", "EVAL","<?",'"',"$",'..');
            foreach ($sql_inj as $res) {
                if (stristr($query, $res)) {
                    unset($query);
                }
            }
            $query = mysql_real_escape_string($query);
        }
        public function filterInject($query)
        {
            filterInjectGET();
            filterInjectPOST();
            filterInjectCOOKIE();
            filterInjectSERVER();
            filterInjectSESSION();
            filterInjectFILES();
        }
        public function filterInjectGET()
        {
            filter($GLOBALS['_GET']);
        } 
        /*Остальные функции filterInject выгядят аналогично*/
    }
    ?>

    Ультимативная борьба с SQL-инъекциями. Враг не пройдёт! Бланк-пейдж встретит его непреступной стеной!

    trinkl, 24 Января 2011

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

    +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
    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
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    <?php
    //error_reporting(0);
    list($sms, $ss) = explode(' ', microtime());
    $start_time=($ss+$sms);
    unset($sms);
    unset($ss);
    include ROOT.'config.php';
    define('VERSION', '0.8');
    if(!isset($installed) && $_SERVER['PHP_SELF']!='/install.php') header("Location: /install.php");
    if(isset($installed)) $db = mysql_connect($dbhost, $dbuser, $dbpass) or die('Could not connect to database server');
    if(isset($installed))mysql_select_db($dbname) or die('Could not select database');
    if(isset($installed)) mysql_set_charset('utf8');
    $sql_query_cnt = 1;
    
    function db_fetch_obj_all($query){
      $res = mysql_query($query);
      $GLOBALS['sql_query_cnt']++;
      if($res==false) retnulla($query);
      $foa = array();
      while($fo = @mysql_fetch_object($res)) $foa[]=$fo;
      return $foa;
    }
    
    function db_query($q){
      $res = mysql_query($q);
      $GLOBALS['sql_query_cnt']++;
      if($res==false) retnulla($q);
      return $res;
    }
    
    function retnulla($q){
      echo '<div class="warn">Ошибка при выполнении SQL-запроса</div><div class="post">'.$q.'</div><div class="post">'.mysql_error().'</div>';
    }
    
    function getConf($key){
      $cfg = db_fetch_obj_all("SELECT * FROM `tcms_config` WHERE `name`='$key'");
      return $cfg[0]->value;
    }
    
    function at_page(){
      global $loggedin;
      if($loggedin){
        $fobj = db_fetch_obj_all('SELECT * FROM `tcms_users` WHERE `id`='.$_SESSION['uid']);
        return $fobj[0]->at_page;
      }
      else return getConf('at_page');
    }
    
    function curr_theme(){
      global $loggedin;
      if($loggedin){
        $fobj = db_fetch_obj_all('SELECT * FROM `tcms_users` WHERE `id`='.$_SESSION['uid']);
        return $fobj[0]->use_theme;
      }
      else return getConf('default_theme');
    }
    
    function puthead($title=''){
    global $uid;
    if($title!='') $page_name = $title;
    include ROOT.'themes/'.curr_theme().'/head.php';
    }
    function putfoot($menu=''){
    global $foot_menu, $mode;
    if($menu!='') $foot_menu.= ' | '.$menu;
    include ROOT.'themes/'.curr_theme().'/foot.php';
    }
    
    session_start();
    $loggedin = false;
    if(isset($_SESSION['uid'])) $loggedin = true;
    if($loggedin){
      $fobj = db_fetch_obj_all('SELECT * FROM `tcms_users` WHERE `id`='.$_SESSION['uid']);
      $uid = $fobj[0]->id;
      $login = $fobj[0]->login;
      $mode = $fobj[0]->mode;
      $ban = $fobj[0]->ban;
      $banned = $ban>time();
      if($banned) $tobanend = $ban-time();
    }else $mode=0;
    
    function escape($str){
    $str = htmlspecialchars($str);
    $str = mysql_real_escape_string($str);
    return $str;
    }
    
    function lower($str){
      return mb_strtolower($str, 'utf8');
    }
    
    function len($str){
      return mb_strlen($str, 'utf8');
    }
    
    // и так далее...

    func.php
    А ООП в class.php там просто отпад.
    Там всю систему сюда постить надо, лол.
    Сношу архив нафиг, такой код нужно сжигать в доменных печах.

    7ion, 23 Января 2011

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

    +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
    <?php
    define('ROOT', '../');
    include ROOT.'func.php';
    include ROOT.'class.php';
    puthead('Форум');
    $fposts = getConf('forum_posts_disp')==1;
    if($mode>2) echo '<a href="/forum/newcat.php">[Создать форум]</a>';
    $cats = forum::get_cats();
    foreach($cats as $cat){
      echo '<div class="forumcat"><b>'.$cat->name.'</b>';
      $forums = forum::get_catforums($cat->id);
      foreach($forums as $f){
        echo '<br><a href="/forum/viewforum.php?id='.$f->id.'">'.$f->name.'</a>';
        # МОЖЕТ ВЫЗВАТЬ КРИТИЧЕСКУЮ НАГРУЗКУ СЕРВЕРА!! Лучше ОТКЛЮЧИТЬ!!!!!
        if($fposts){
          echo ' ('.forum::count_topics($f->id).'/'.forum::count_posts_forum($f->id).')';
        }
        # КОНЕЦ ОПАСНОГО КУСКА
        if($mode>2) echo ' <a href="/forum/upforum.php?id='.$f->id.'">[Поднять выше]</a> <a href="/forum/del.php?forum='.$f->id.'">[Удалить]</a>';
      }
    if($mode>2) echo '<hr><a href="/forum/newforum.php?id='.$cat->id.'">[Создать подфорум]</a> <a href="/forum/del.php?cat='.$cat->id.'">[Удалить]</a> <a href="/forum/upcat.php?id='.$cat->id.'">[Поднять выше]</a>';
    echo '</div>';
    }
    putfoot();
    ?>

    Оттуда же.
    /forum/index.php

    7ion, 23 Января 2011

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

    +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
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    <?php
    include("block/connect.php");
    $result = mysql_query("SELECT name FROM files",$db);
    $myrow = mysql_fetch_array($result);
     
     
    $dir=opendir('./files/');
    $file = readdir ($dir);
     
    $amt=mysql_num_rows($result);
    $cf=0;
    $cfb=$amt;
    $fname[]="";                                                                                    //Заносим в массив fname имена файлов которые находятся в папке
    while ($file = readdir ($dir))  
      {
              if($file!=".."&&$file!=".")
              {
              $fname[$cf]=$file;
              $cf++;
              }
      }                                                                                                             //Занесли
      
    $fdbname[]="";                                                                                  //Заносим в массив fdbname имена файлов которые находятся в папке
    $j=0;
      do
      {
              $fdbname[$j]=$myrow["name"];
              $j++;
      }
      while($myrow = mysql_fetch_array ($result));                  //Занесли
     
      echo "Количество файлов в папке: ".$cf."<br>";
      echo "Количество файлов в базе: ".$cfb."<br><br>";
      
      echo "Файлы в папке:<br>";                    //Выводим массив fname
      for($i=0;$i<=$cf;$i++)
      {
              echo $fname[$i]."<br>";
      }
     
             echo "<br>Файлы в базе:<br>";          //Выводим массив fdbname
      for($i=0;$i<=$cfb;$i++)
      {
              echo $fdbname[$i]."<br>";
      }
      
      //Выводим имена файлов которые есть в папке но нет в базе
      
     echo "<br>Файлы которые есть в папке но нет в базе:";
      for($i=0;$i<=$cf;$i++)
      {
              for($j=0;$j<=$cfb;$j++)
              {
                      if($fname[$i]==$fdbname[$j])
                            {
                                    break;
                            }
     
                            if($j==$cfb)
                            {
                                    echo "<br>".$fname[$i]."___НЕТ в базе";
                                    echo "<br>".$fname[$i]."___УДАЛЁН";
                                    unlink('./files/'.$fname[$i]);
                            }
     
              }
      }
      
      
      
    ?>

    Цитата:
    "Спасибо, но я уже решил проблему самостоятельно, + ещё добавил удалениее тех файлов которых нет в базе Я внес в один массив файлы которые есть в папке, а в другой массив файлы которые есть в базе, потом сравнил два массива...
    можете оценить:"

    Sulik78, 23 Января 2011

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

    +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
    <?php
    define('ROOT', './');
    include ROOT.'func.php';
    include ROOT.'class.php';
    puthead();
    if(isset($_GET['e'])){
      echo 'Ошибка '.$_GET['e'];
    }
    $incpage='';
    for($i=0;$i<2;$i++){
      if(isset($_GET["i$i"]) && preg_match('/^[a-zA-Z0-9_]+$/', $_GET["i$i"])) $incpage=$_GET["i$i"];
    }
    if($incpage==''){
    if($is_web) include ROOT.'about.tchtml';
    else include ROOT.'index_page.tchtml';
    }
    else include ROOT.$incpage.'.tchtml';
    putfoot();
    ?>
    
    <?php
    define('ROOT', './');
    include ROOT.'func.php';
    puthead('Заголовок');
    ?>
    Пример создания страниц под двиг
    <?
    putfoot();
    ?>

    The CMS. (Да, это такое название.)
    Как ни странно, в состав входит полноценный форум, гостевая книга, модуль новостей и еще куча всякой херни.
    И все это даже работает.
    Но тут меня угораздило заглянуть в сорцы.
    index.php и пример создания страницы.

    7ion, 23 Января 2011

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

    +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
    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
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    <?php
    $month_cols = array("january" => 31,
    	            "february" => 28,
                        "march" => 31,
                        "april" => 30,
                        "may" => 31,
                        "june" => 30,
                        "july" => 31,
                        "august" => 31,
                        "september" => 30,
                        "october" => 31,
                        "november" => 30,
                        "december" => 31);
    
    if($_POST["month_to_change"])
    {
    $month_to = $_POST["month_to_change"];
     for($i = 1; $i <= $month_cols[$_POST["month_to_change"]]; $i++)
     {
      $description = mysql_real_escape_string($_POST["textar_".$i]);
      mysql_query("UPDATE `calender` SET `description` = '$description' WHERE `day` = '$i' AND `month` = '$month_to' LIMIT 1");
     }
    }
    
      echo "<h3>Лунный календарь</h3>";
    
      if($_POST["month_change"])
      {
       if($_POST["month"] == "january") $jan_sel = "selected";
       if($_POST["month"] == "february") $feb_sel = "selected";
       if($_POST["month"] == "march") $mar_sel = "selected";
       if($_POST["month"] == "april") $apr_sel = "selected";
       if($_POST["month"] == "may") $may_sel = "selected";
       if($_POST["month"] == "june") $jun_sel = "selected";
       if($_POST["month"] == "july") $jul_sel = "selected";
       if($_POST["month"] == "august") $aug_sel = "selected";
       if($_POST["month"] == "september") $sep_sel = "selected";
       if($_POST["month"] == "october") $oct_sel = "selected";
       if($_POST["month"] == "november") $nov_sel = "selected";
       if($_POST["month"] == "december") $dec_sel = "selected";
      }
      else
      {
       $jan_sel = "selected";
      }
    
      $changing_month = $_POST["month"];
      if($changing_month == "") $changing_month = "january";
    
      echo "<table>\n";
      echo "<tr><td>\n";
      echo "<form name=\"form_name\" id=\"form_id\" action=\"\" method=\"post\">\n";
      echo "<select name=\"month\" onChange=\"this.form.submit()\">\n
      	<option value=\"january\" $jan_sel>Январь</option>\n
    	<option value=\"february\" $feb_sel>Февраль</option>\n
            <option value=\"march\" $mar_sel>Март</option>\n
            <option value=\"april\" $apr_sel>Апрель</option>\n
            <option value=\"may\" $may_sel>Май</option>\n
            <option value=\"june\" $jun_sel>Июнь</option>\n
            <option value=\"july\" $jul_sel>Июль</option>\n
            <option value=\"august\" $aug_sel>Август</option>\n
            <option value=\"september\" $sep_sel>Сентябрь</option>\n
            <option value=\"october\" $oct_sel>Октябрь</option>\n
            <option value=\"november\" $nov_sel>Ноябрь</option>\n
            <option value=\"december\" $dec_sel>Декабрь</option>\n
            </select>\n";
      echo "<input type=\"hidden\" name=\"month_change\" value=\"change\">\n";
      echo "</td></tr>\n";
    
      for($i = 1; $i <= $month_cols[$changing_month]; $i++)
      {
    
      $q_q2 = mysql_query("SELECT `description` FROM `calender` WHERE `day` = '$i' AND `month` = '$changing_month' LIMIT 1");
    
      $descr = mysql_fetch_row($q_q2);
    
       echo "<tr valign=\"top\" cols=\"5\">
              <td><b>$i</b></td>
              <td>
              <textarea name=\"textar_$i\">".$descr[0]."</textarea>
              </td>
    </tr>\n";
      }
    
      echo "<tr>
             <td colspan=\"2\" align=\"right\">
             <input type=\"submit\" value=\"Сохранить\">
             </td>
    </tr>\n";
    
      echo "<input type=\"hidden\" name=\"month_to_change\" value=\"$changing_month\">\n";
    
      echo "</form>";
      echo "</table>";
    ?>

    А это уже часть, которая апдейтит базу :-)

    varg242, 22 Января 2011

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

    +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
    <?php
    
    $ident = mysql_connect("localhost", "root", "");
    mysql_select_db("database");
    
    $month_cols = array("january" => 31,
    	            "february" => 28,
                        "march" => 31,
                        "april" => 30,
                        "may" => 31,
                        "june" => 30,
                        "july" => 31,
                        "august" => 31,
                        "september" => 30,
                        "october" => 31,
                        "november" => 30,
                        "december" => 31);
    
    foreach($month_cols as $key => $value)
    {
     for($i = 1; $i <= $value; $i++)
     {
      mysql_query("INSERT INTO `calender` SET `day` = '$i', `month` = '$key'");
     }
    }
    
    mysql_close($ident);
    
    ?>

    Недавнее творение.
    Нужно было создать базу данных, которая потом будет апдейтиться.

    varg242, 22 Января 2011

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

    +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
    private function infernal($logic){
    		$logic = str_split($logic);
    		while(!empty($logic)){
    			foreach($logic as $char){
    				$char = str_split($char);
    				while(!empty($char)){
    					foreach($char as $char2){
    						if($char2!="0") unset($char);
    						$this->check($char, $char2);
    					}
    				}
    			}
    		}
    	return $logic;
    }

    похоже что писал на больную голову

    XyHb, 22 Января 2011

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

    +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
    if(!isset($_SESSION['captcha'])) $error = "Please Enable Cookies";
        else {
            $name = $_POST["name"];
            $msg = $_POST["msg"];
            if(strlen($msg) <= 2)
            {   $error = "слишком маленькое сообщение";   }
            else if($_POST["captcha"] !== $_SESSION["captcha"])
            {   $error = "символы не введено не верно";   }
            else if(strlen($name) > 25)
            {   $error = "слишком длиное имя"; }
            else if(strlen($msg) > 256)
            {   $error = "слишком длиное сообщение"; }
            else if(strlen($name) > 25 && strlen($msg) >256)
            {   $error = "слишком длинное имя и сообщение";  }
            else if(strlen($name) <= 25 && strlen($msg) <=256)
            {
                    $msg = str_value($msg);
                    if($msg == "") $error = "введите сообщение";
                    else {
                        write_file($name,$msg);
                        $d2d_1 = mktime(0,0,0,1,1,2037);
                        setcookie('nameData',$name,$d2d);
                        $error = "";
                    }
                }
            }
        }

    сперто из гостевой книги

    skylex_hacker, 21 Января 2011

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

    +169

    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 razbstrok($text)
    {
    $nomer1=0;
    $stroki = array();
    	$nomer1 = strpos($text, ".", $nomer1+1);
    	while($nomer1!=false)
    	{
    		$stroki[count($stroki)]=substr($text, 0, $nomer1);
    		$text = substr($text, $nomer1+1, strlen($text)-1-$nomer1);
    		$nomer1 = strpos($text, ".", $nomer1+1);
    	}
    	$i=1;
    	$i=0;
    	while($i<count($stroki))
    	{
    	if($stroki[$i]=="")
    		{
    		$stroki[$i]=NULL; //убрать пустые клетки
    		}
    	$i=$i+1;
    	}
    	return $stroki;
    }
    
    ...
    
    $i=0;
    while($i<count(razbstrok($_GET["razdeliteli"])))
    {
    //echo(razbstrok($_GET["razdeliteli"])[$i]);
    $stroki = razbstrok($_GET["razdeliteli"]);
    echo($stroki[$i]);
    $i=$i+1;
    echo('<br>');
    }

    explode? Нет, не слышал.

    basename, 21 Января 2011

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