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

    +145

    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
    /**
     * commentsPostController: контроллер для метода post модуля comments
     *
     * @package modules
     * @subpackage comments
     * @version 0.2
     */
    class commentsPostController extends simpleController
    {
    //......
            $formTitles = array(
                'Я, <b>' . htmlspecialchars($user->getLogin()) . '</b>, находясь в здравом уме и твердой памяти, торжественно заявляю:',
                'Помни, <b>' . htmlspecialchars($user->getLogin()) . '</b>, за тобой могут следить!',
                'Семь раз отмерь — один отрежь, <b>' . htmlspecialchars($user->getLogin()) . '</b>!',
                'Где здесь C++, <b>' . htmlspecialchars($user->getLogin()) . '</b>?!',
            );
    
            $session = $this->toolkit->getSession();
            if ($onlyForm) {
                $currentTitleIndex = mt_rand(0, sizeof($formTitles) - 1);
                $session->set('comments_form_title_index', $currentTitleIndex);
            } else {
                $currentTitleIndex = $session->get('comments_form_title_index', -1);
                if (!isset($formTitles[$currentTitleIndex])) {
                    $currentTitleIndex = mt_rand(0, sizeof($formTitles) - 1);
                    $session->set('comments_form_title_index', $currentTitleIndex);
                }
            }
    //......
    }

    11-16: титлам самое место в контроллере!

    18-28 меня совсем обескуражило... Но чем, подсказывать не буду, глядите сами = )

    откуда взято, сами понимаете = )

    Lure Of Chaos, 16 Января 2011

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

    +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
    /* Draw the legend of the active series */
       function drawLegend($X,$Y,$Format="")
        {
         $Family	= isset($Format["Family"]) ? $Format["Family"] : LEGEND_FAMILY_BOX;
    ...
         $Mode	= isset($Format["Mode"]) ? $Format["Mode"] : LEGEND_VERTICAL;
         if ( $Surrounding != NULL ) { $BorderR = $R + $Surrounding; $BorderG = $G + $Surrounding; $BorderB = $B + $Surrounding; }
         $YStep = max($this->FontSize,$BoxHeight) + 5;
         $XStep = $BoxWidth + 5;
         $XStep = $XSpacing;
         $Data = $this->DataSet->getData();
         $Boundaries = ""; $Boundaries["L"] = $X; $Boundaries["T"] = $Y; $Boundaries["R"] = 0; $Boundaries["B"] = 0; $vY = $Y; $vX = $X;
         foreach($Data["Series"] as $SerieName => $Serie)
          {
           if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
            {
             if ( $Mode == LEGEND_VERTICAL )
              {
               $BoxArray = $this->getTextBox($vX+$BoxWidth+4,$vY+$BoxHeight/2,$FontName,$FontSize,0,$Serie["Description"]);
               if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$BoxHeight/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$BoxHeight/2; }
               if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
               if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$BoxHeight/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$BoxHeight/2; }
               $Lines = preg_split("/\n/",$Serie["Description"]);
               $vY = $vY + max($this->FontSize*count($Lines),$BoxHeight) + 5;
              }
             elseif ( $Mode == LEGEND_HORIZONTAL )
              {
               $Lines = preg_split("/\n/",$Serie["Description"]);
               $Width = "";
               foreach($Lines as $Key => $Value)
                {
                 $BoxArray = $this->getTextBox($vX+$BoxWidth+6,$Y+$BoxHeight/2+(($YStep-3)*$Key),$FontName,$FontSize,0,$Value);
                 if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$BoxHeight/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$BoxHeight/2; }
                 if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
                 if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$BoxHeight/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$BoxHeight/2; }
                 $Width[] = $BoxArray[1]["X"];
                }
               $vX=max($Width)+$XStep;
              }
            }
          }
         $vY=$vY-$YStep; $vX=$vX-$XStep;
         $TopOffset  = $Y - $Boundaries["T"];
         if ( $Boundaries["B"]-($vY+$BoxHeight) < $TopOffset ) { $Boundaries["B"] = $vY+$BoxHeight+$TopOffset; }
         if ( $Style == LEGEND_ROUND )      $this->drawRoundedFilledRectangle(...);
         elseif ( $Style == LEGEND_BOX )  $this->drawFilledRectangle(...);
         $RestoreShadow = $this->Shadow; $this->Shadow = FALSE;
         foreach($Data["Series"] as $SerieName => $Serie)
          {
           if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
            {
             $R = $Serie["Color"]["R"]; $G = $Serie["Color"]["G"]; $B = $Serie["Color"]["B"];
             $Ticks = $Serie["Ticks"]; $Weight = $Serie["Weight"];
             if ( $Family == LEGEND_FAMILY_BOX )
    
          }
         $this->Shadow = $RestoreShadow;
        }

    Наша либа, которая рисует графики: функция рисующая легенду.

    jdmien, 16 Января 2011

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

    +167

    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
    class country extends baza
    {
    ......
    function show_description($country=NULL)
    {
        if ($this instanceof country)
            $quest="SELECT description FROM countries WHERE name=\"$this->name"";
        if ($this instanceof city) // йобаный стыд!!! 0_0
            $quest="SELECT description FROM cities WHERE name\"$this->name\" AND country=\"$country\" ";
    ......
    }
    
    class city extends country
    .....

    предок "country" знает о потомке "city"

    Говнокод из говнокнижки Елены Бенкен "PHP, MySQL, XML Программирование для интернета" БХВ-Петербург,ISBN 5-9775-0039-4 страница 209

    StriderMan, 16 Января 2011

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

    +162

    1. 1
    $text = preg_replace("#<a(.*?)\/a>|(h.*?:\/\/)?([a-z0-9- .]+\.[a-z ]*)#si","",$text);

    Регулярное выражение, задача которого уничтожить все существующие ссылки на сторонние сайты содержащиеся в переменной $text
    Друг посчитал, что коду место на этом ресурсе :)

    wowerwower, 15 Января 2011

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

    +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
    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
    <form id="form1" name="form1" method="post" action="2.php">
    ...
    </form>
    <?php session_start ();
    ?>
      <?php 
    
    $_SESSION['dataa'] = $_POST['dataa'];
    $_SESSION['datab'] = $_POST['datab'];
    $_SESSION['datac'] = $_POST['datac'];
    $_SESSION['datad'] = $_POST['datad'];
    $_SESSION['datae'] = $_POST['datae'];
    $_SESSION['dataf'] = $_POST['dataf'];
    $_SESSION['datag'] = $_POST['datag'];
    $_SESSION['datah'] = $_POST['datah'];
    $_SESSION['datak'] = $_POST['datak'];
    $_SESSION['datal'] = $_POST['datal'];
    if ($_SESSION['dataa'] == "1") { include 'data/data1.php';};
    if ($_SESSION['datab'] == "1") { include 'data/data2.php';};
    if ($_SESSION['datac'] == "1") { include 'data/data3.php';};
    if ($_SESSION['datad'] == "1") { include 'data/data4.php';};
    if ($_SESSION['datae'] == "1") { include 'data/data5.php';};
    if ($_SESSION['dataf'] == "1") { include 'data/data6.php';};
    if ($_SESSION['datag'] == "1") { include 'data/data7.php';};
    if ($_SESSION['datah'] == "1") { include 'data/data8.php';};
    if ($_SESSION['datak'] == "1") { include 'data/data9.php';};
    if ($_SESSION['datal'] == "1") { include 'data/data10.php';};
    
    
    print_r ($_SESSION);
    ?>
    
    <?php //if ($_SESSION['dataa'] == "1") { include 'data/data1.php';};?>
    
    
    
    
    <p> </p>
    <p> </p>

    http://www.php.ru/forum/viewtopic.php?p=258218

    Полный и безнадежный долбоебизм

    Devzirom, 15 Января 2011

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

    +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
    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
    function load_file( $name, $include_file = "tpl" ) {
    		global $db, $is_logged, $member_id, $cat_info, $config, $user_group, $category_id, $_TIME, $lang, $smartphone_detected, $dle_module;
    
    		$name = str_replace( '..', '', $name );
    
    		$url = @parse_url ($name);
    		$type = explode( ".", $url['path'] );
    		$type = strtolower( end( $type ) );
    
    		if ($type == "tpl") {
    
    			return $this->sub_load_template( $name );
    
    		}
    
    		if ($include_file == "php") {
    
    			if ( !$this->allow_php_include ) return;
    
    			if ($type != "php") return "Для подключения допускаются только файлы с расширением .tpl или .php";
    
    			if ($url['path']{0} == "/" )
    				$file_path = dirname (ROOT_DIR.$url['path']);
    			else
    				$file_path = dirname (ROOT_DIR."/".$url['path']);
    
    			$file_name = pathinfo($url['path']);
    			$file_name = $file_name['basename'];
    
    			if ( stristr ( php_uname( "s" ) , "windows" ) === false )
    				$chmod_value = @decoct(@fileperms($file_path)) % 1000;
    
    			if ( stristr ( dirname ($url['path']) , "uploads" ) !== false )
    				return "Файл находится в недопустимой папке /uploads/";
    
    			if ( stristr ( dirname ($url['path']) , "templates" ) !== false )
    				return "Файл находится в недопустимой папке /templates/";
    
    			if ($chmod_value == 777 ) return "Файл {$url['path']} находится в папке, которая доступна для записи (CHMOD 777). В целях безопасности подключение файлов из таких папок невозможно. Измените права на папку, чтобы на нее небыло прав на запись.";
    
    			if ( !file_exists($file_path."/".$file_name) ) return "Файл {$url['path']} не найден, его загрузка невозможна.";
    
    			if ( $url['query'] ) {
    
    				parse_str( $url['query'] );
    
    			}
    
    			ob_start();
    			$tpl = new dle_template( );
    			$tpl->dir = TEMPLATE_DIR;
    			include $file_path."/".$file_name;
    			return ob_get_clean();
    
    		}
    
    		return '{include file="'.$name.'"}';
    
    
    	}

    DLE software, доставило
    Шеф заказал сайт на этой цмс...

    DanxilLs, 15 Января 2011

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

    +35

    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
    <?php
    include_once './includes/bootstrap.inc';
    drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
    module_load_include('inc', 'node', 'node.pages'); 
    
    $queryPopQueue = "select * from custom_contact_insert where drupal_node_id is null limit 50";
    $queryResult =  db_query($queryPopQueue);
    while ($data = db_fetch_object($queryResult)){
        $node->type = 'contact';
        node_object_prepare($node);
        $node->uid = 1;
        $node->title = $data->field_contact_first_name_value . ' ' . $data->field_contact_last_name_value;
        $node->body = "";
        $node->teaser = "";
        $node->filter = variable_get('filter_default_format', 1);
        $node->format = FILTER_FORMAT_DEFAULT;
        $node->language = '';
        $node->revision = 0;
        $node->promote = 0;
        $node->created = time();
        $node->comment= 0;
        
        $node->taxonomy = array('tags' => array('11' => ($data->categories)));
        $node->field_contact_first_name[0]['value'] = $data->field_contact_first_name_value;
        $node->field_contact_last_name[0]['value'] = $data->field_contact_last_name_value;
        $node->field_contact_job_title[0]['value'] = $data->field_contact_job_title_value;
        $node->field_contact_organization[0]['value'] = $data->field_contact_organization_value;
        $node->field_contact_organization_r['nid']['nid'] = '463'; //this is a sample hard coded value
        $node->field_contact_account_sfid[0]['value'] = $data->field_contact_account_sfid_value;
        $node->field_contact_sfid[0]['value'] = $data->field_contact_sfid_value;
        
        $node->field_contact_email_optout[0]['value'] = 'false';
        $node->field_contact_phone_optout[0]['value'] = 'false';
        
        $node->field_contact_add1_city[0]['value'] = $data->field_contact_add1_city_value;
        $node->field_contact_add1_country[0]['value'] = $data->field_contact_add1_country_value;
        $node->field_contact_add1_zipcode[0]['value'] = $data->field_contact_add1_zipcode_value;
        $node->field_contact_add1_state[0]['value'] = $data->field_contact_add1_state_value;
        $node->field_contact_add1_street[0]['value'] = $data->field_contact_add1_street_value;
        $node->field_contact_add1_type[0]['value'] = 'Work';
        
        $node->field_contact_add2_city[0]['value'] = $data->field_contact_add2_city_value;
        $node->field_contact_add2_country[0]['value'] = $data->field_contact_add2_country_value;
        $node->field_contact_add2_zipcode[0]['value'] = $data->field_contact_add2_zipcode_value;
        $node->field_contact_add2_state[0]['value'] = $data->field_contact_add2_state_value;
        $node->field_contact_add2_street[0]['value'] = $data->field_contact_add2_street_value;
        $node->field_contact_add2_type[0]['value'] = 'Home';
        
        $node->field_contact_mobile_phone[0]['value'] = $data->field_contact_mobile_phone_value;
        $node->field_contact_home_phone[0]['value'] = $data->field_contact_home_phone_value;
        $node->field_contact_work_phone[0]['value'] = $data->field_contact_work_phone_value;
        $node->field_contact_asst_phone[0]['value'] = $data->field_contact_asst_phone_value;
        
        $node->field_contact_email1[0]['value'] = $data->field_contact_email1_email;
        $node->field_contact_email2[0]['value'] = $data->field_contact_email2_email;
        $node->field_contact_email_asst[0]['value'] = $data->field_contact_email_asst_email;
        
        $node->field_contact_assistant[0]['value'] = $data->field_contact_assistant_value;
        $node->field_contact_notes[0]['value'] = $data->notes;
          
        node_save($node);
        $nid = $node->nid;
        unset($node);
        
        //update status and drupalid in the queue
        $queryUpdate = "update custom_contact_insert set drupal_node_id = '$nid', status = '1' where id = '" . $data->id . "'";
        db_query($queryUpdate);
    }
    ?>

    вот вам высер. не мой на этот раз :)

    brainstorm, 14 Января 2011

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function DateFromDBToHr($date)
    {
    	$datetime = explode(" ", $date);
    	$dates = explode("-", $datetime[0]);
    	return (intval($dates[0])) ? date("d-M-Y", mktime(0, 0, 0, $dates[1], $dates[2], $dates[0])) : false;
    }

    про то, что форматировать дату можно в запросе или про существование strtotime автор даже не догадывается

    elw00d, 14 Января 2011

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

    +195

    1. 1
    for($j=0;$j<23000000;$j++); //пауза ~3 сек

    Ну как вам? :)

    Yanovsky, 13 Января 2011

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

    +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
    <?php
    require_once('MultiAutoload.php');
    
    class Dispatcher {
    
    	private $handle;
    
    	function __construct($event_handle) {
    		$this->handle = $event_handle;
    	}
    
    	function handleEvent() {
    		$name = 'Handler_'.$this->handle;
    		if (class_exists($name)) {
    			$handler_obj = new $name($this->handle);
    			$response = $handler_obj->secureHandler();
    			return $response;
    		}
    		else {
    			throw new Exception('Event handling is impossible!');
    		}
    	}
    }
    ?>

    Немного экзотики: PHP в стиле Win32! Говно за собой не сразу увидел,
    но когда "пришло озарение" было смешно.

    dwinner, 13 Января 2011

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