1. Лучший говнокод

    В номинации:
    За время:
  2. PHP / Говнокод #7556

    +166

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $darray = explode('.', $_SERVER['HTTP_HOST']);
    $narray = array_reverse($darray);
    array_pop($narray);
    $domain = implode('.',array_reverse($narray));
    $this->view->domain=$domain;

    Индусы такие индусы...

    kest, 16 Августа 2011

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

    +166

    1. 1
    $lastID=chr(rand(ord('a'),ord('z'))).rand(1,9).chr(rand(ord('a'),ord('z'))).rand(1,9).rand(1,9).chr(rand(ord('a'),ord('z')));

    данная строка генерирует код активации для пользователя при регистрации.

    Sulik78, 13 Августа 2011

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

    +166

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    $text_to_check = mysql_real_escape_string ($_GET["запрос"]);
     
    $text_to_check = strip_tags($text_to_check);
             
    $text_to_check = htmlspecialchars($text_to_check);
     
    $text_to_check = stripslashes($text_to_check);
         
    $text_to_check = addslashes($text_to_check);   
     
    $_GET["запрос"] = $text_to_check;

    все защитил

    Sulik78, 12 Августа 2011

    Комментарии (30)
  5. 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)
  6. PHP / Говнокод #7322

    +166

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    for($i=0,$n=count($vars);$i<$n;$i++){
    
        eval(' $'.$vars[$i].'=isset($_POST["'.$vars[$i].'"])? addslashes(trim($_POST["'.$vars[$i].'"])) : ""; ');
    
      }

    В недрах самописной crm)

    antongorodezkiy, 23 Июля 2011

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

    +166

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public static function isMobile()
        {
            $useragent = $_SERVER['HTTP_USER_AGENT'];
            if (preg_match('/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent) ||
                preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i', substr($useragent,0,4))
            )
                return true;
    
            // default
            return false;
        }

    kovel, 21 Июля 2011

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

    +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
    <?php $ago = time()-$time; ?>
    <?php $hour = sfConfig::get('app_hour_in_seconds'); ?>
    <?php $day = sfConfig::get('app_day_in_seconds'); ?>
    
    <?php if($ago < 60): ?>
    	<span>less than one minute ago</span>
    <?php elseif($ago < $hour): ?>
      <?php $m = floor($ago/60); ?>
    	<span><?php echo($m); ?> minute<?php echo(($m > 1 ? 's' :'')); ?> ago</span>
    <?php elseif($ago <= $day): ?>
    	<?php $h = floor($ago/$hour); ?>
    	<span><?php echo($h); ?> hour<?php echo(($h > 1 ? 's' :'')); ?> ago</span>
    <?php elseif ($ago <= $day*30): ?>
    	<?php $d = floor($ago/$day); ?>
    	<span><?php echo($d); ?> day<?php echo(($d > 1 ? 's' :'')); ?> ago</span>
    <?php elseif ($ago <= $day*365): ?>
    	<?php $m = floor($ago/$day*30); ?>
    	<?php $d = floor(($ago-$m)/$day); ?>
    	<span><?php echo($m); ?> month<?php echo(($m > 1 ? 's' :'')); ?> <?php echo($d); ?> day<?php echo(($d > 1 ? 's' :'')); ?> ago</span>
    <?php else: ?>
    	<?php $y = floor($ago/$day*365); ?>
    	<?php $m = floor(($ago-$y)/$day*30); ?>
    	<?php $d = floor(($ago-$y-$m)/$day); ?>
    	<span><?php echo($y); ?> year<?php echo(($y > 1 ? 's' :'')); ?> 
    		<?php echo($m); ?> month<?php echo(($m > 1 ? 's' :'')); ?> 
    		<?php echo($d); ?> day<?php echo(($d > 1 ? 's' :'')); ?> ago</span>
    <?php endif; ?>

    Кусок кода, выводящий дату поста в формате N days N hours ago....
    Кроме собственно говностиля забавляет наличие цифр 30 и 365 в коде)

    programmer, 18 Июля 2011

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

    +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
    //Анти - XSS
    function antixss() {
    	//Запрещенные элементы
    	$array = array('./' , '../' , '\'' , '<script>' , 'document.cookie' , '</script>' );
    		
    	//GET
    	$query = $_GET;
    	if( sizeof($query) ) {
    		foreach($query AS $arr => $value) {
    			$clear_xss = str_replace($array , '[xss]' , $value);
    			$_GET[$arr]  = $clear_xss;
    		}
    		
    	}
    	
    	//GET
    	$query = $_POST;
    	if( sizeof($query) ) {
    		foreach($query AS $arr => $value) {
    			$clear_xss = str_replace($array , '[xss]' , $value);
    			$_POST[$arr]  = $clear_xss;
    		}
    		
    	}
    	
    	
    	return true;
    }

    Наконец-то школьники придумали средство от XSS.
    * BY LiteTracker Source

    nethak, 12 Июля 2011

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

    +166

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    #include <iostream>
    using namespace std;
    
    int main () {
      for( struct {int i; long i2;} x = {1, 1};
           x.i2 <= 100;
           x.i++, x.i2 = x.i * x.i ) {
        cout << x.i2 << endl;
      }
      return 0;
    }

    Поскольку реального ГК нет, добавлю синтетического.
    NB: Под MSVC такое не пройдет. g++ - ok: http://codepad.org/JesKsnMQ

    http://jia3ep.blogspot.com/2010/07/struct-in-for-loop.html

    Aleskey, 04 Июля 2011

    Комментарии (27)
  11. C++ / Говнокод #7131

    +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
    // say this is some existing structure. And we want to use
    // a list. We can tell it that the next pointer
    // is apple::next.
    struct apple {
        int data;
        apple * next;
    };
    
    // simple example of a minimal intrusive list. Could specify the
    // member pointer as template argument too, if we wanted:
    // template<typename E, E *E::*next_ptr>
    template<typename E>
    struct List {
        List(E *E::*next_ptr):head(0), next_ptr(next_ptr) { }
    
        void add(E &e) {
            // access its next pointer by the member pointer
            e.*next_ptr = head;
            head = &e;
        }
    
        E * head;
        E *E::*next_ptr;
    };
    
    int main() {
        List<apple> lst(&apple::next);
    
        apple a;
        lst.add(a);
    }

    c++ страшный язык :) (часть вторая)

    C++: Pointer to class data member: http://stackoverflow.com/questions/670734/c-pointer-to-class-data-member

    Такие конструкции "E *E::*next_ptr;" без подготовки не осилить.

    Aleskey, 02 Июля 2011

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