- 1
test
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+156
test
test
+144.5
int main() {
[some code here...]
while(1) {
[some code here...]
}
// At last, cleaning up... But for what, if this lines will never be used because of "while(1)"? Just I feel better with it :)
sybase_close(&db);
dropconfig(&cfg);
return 0;
}
На самом деле тут ничего говнитого то, IMHO, нет.
Но люди кидают сюда подобные куски кода, вот я решил тоже поделиться.
Суть в том, что после while(1) идёт зачистка... которая, кстати, нужна при прогонке valgrind-ом (можно добавить break в цикл).
+156
$htmlhead='<html><head><meta>..............</head><body>';
$htmlend='</body></html>';
$table['start']='<table style=...><tr><td>'
$table['center']='</td><td>';
$table['end']='</td></tr></table>';
$menu='<a href=.......>main</a>aaa'
[..........]
function serror($error) {
global $htmlhead;
global $table;
global $menu;
global $htmlend;
global $lang;
echo $htmlhead.$table['start'].$menu ......
}
Так грамотно вначале, и тут вдруг...
+158
<?php
...
$date1['year'] = ($_POST['year1']>=2006 && $_POST['year1']<=2037) ? $_POST['year1'] : (($_GET['year1']>=2006 && $_GET['year1']<=2037) ? $_GET['year1'] : date('Y'));
$date1['month'] = ($_POST['month1']>=1 && $_POST['month1']<=12) ? $_POST['month1'] : (($_GET['month1']>=1 && $_GET['month1']<=12) ? $_GET['month1'] : date('n'));
$date1['day'] = $type>2 ? 1 : (($_POST['day1']>=1 && $_POST['day1']<=31) ? $_POST['day1'] : (($_GET['day1']>=1 && $_GET['day1']<=31) ? $_GET['day1'] : date('j')));
$date1['hour'] = $type>1 ? 0 : ((isset($_POST['hour1']) && $_POST['hour1']>=0 && $_POST['hour1']<=23) ? $_POST['hour1'] : ((isset($_GET['hour1']) && $_GET['hour1']>=0 && $_GET['hour1']<=23) ? $_GET['hour1'] : 0));
$date1['min'] = $type ? 0 : ((isset($_POST['min1']) && $_POST['min1']>=0 && $_POST['min1']<=59) ? $_POST['min1'] : ((isset($_GET['min1']) && $_GET['min1']>=0 && $_GET['min1']<=59) ? $_GET['min1'] : 0));
$date2['year'] = ($_POST['year2']>=2006 && $_POST['year2']<=2037) ? $_POST['year2'] : (($_GET['year2']>=2006 && $_GET['year2']<=2037) ? $_GET['year2'] : date('Y'));
$date2['month'] = ($_POST['month2']>=1 && $_POST['month2']<=12) ? $_POST['month2'] : (($_GET['month2']>=1 && $_GET['month2']<=12) ? $_GET['month2'] : date('n'));
$date2['day'] = $type>2 ? cal_days_in_month(CAL_GREGORIAN, $date2['month'], $date2['year']) : (($_POST['day2']>=1 && $_POST['day2']<=31) ? $_POST['day2'] : (($_GET['day2']>=1 && $_GET['day2']<=31) ? $_GET['day2'] : date('j')));
$date2['hour'] = $type>1 ? 23 : ((isset($_POST['hour2']) && $_POST['hour2']>=0 && $_POST['hour2']<=23) ? $_POST['hour2'] : ((isset($_GET['hour2']) && $_GET['hour2']>=0 && $_GET['hour2']<=23) ? $_GET['hour2'] : 23));
$date2['min'] = $type ? 59 : ((isset($_POST['min2']) && $_POST['min2']>=0 && $_POST['min2']<=59) ? $_POST['min2'] : ((isset($_GET['min2']) && $_GET['min2']>=0 && $_GET['min2']<=59) ? $_GET['min2'] : 59));
$date1['day'] = cal_days_in_month(CAL_GREGORIAN, $date1['month'], $date1['year'])<$date1['day'] ? cal_days_in_month(CAL_GREGORIAN, $date1['month'], $date1['year']) : $date1['day'];
$date2['day'] = cal_days_in_month(CAL_GREGORIAN, $date2['month'], $date2['year'])<$date2['day'] ? cal_days_in_month(CAL_GREGORIAN, $date2['month'], $date2['year']) : $date2['day'];
$time_from = mktime($date1['hour'], $date1['min'], 1, $date1['month'], $date1['day'], $date1['year']);
$time_to = mktime($date2['hour'], $date2['min'], 59, $date2['month'], $date2['day'], $date2['year']);
$types = array(0,1,2,3);
switch ($type) {
case 0:
$sql_cols = "minute(from_unixtime(data.log_time)) as \"i\", hour(from_unixtime(data.log_time)) as \"G\", day(from_unixtime(data.log_time)) as \"j\", month(from_unixtime(data.log_time)) as \"n\", year(from_unixtime(data.log_time)) as \"Y\"";
$sql_group_by = 'group by "i", "G", "j", "n", "Y"';
break;
case 1:
$sql_cols = "'0' as \"i\", hour(from_unixtime(data.log_time)) as \"G\", day(from_unixtime(data.log_time)) as \"j\", month(from_unixtime(data.log_time)) as \"n\", year(from_unixtime(data.log_time)) as \"Y\"";
$sql_group_by = 'group by "G", "j", "n", "Y"';
break;
case 2:
$sql_cols = "'0' as \"i\", '0' as \"G\", day(from_unixtime(data.log_time)) as \"j\", month(from_unixtime(data.log_time)) as \"n\", year(from_unixtime(data.log_time)) as \"Y\"";
$sql_group_by = 'group by "j", "n", "Y"';
break;
case 3:
$sql_cols = "'0' as \"i\", '0' as \"G\", '0' as \"j\", month(from_unixtime(data.log_time)) as \"n\", year(from_unixtime(data.log_time)) as \"Y\"";
$sql_group_by = 'group by "n", "Y"';
break;
default:
$sql_cols = "'0' as \"i\", '0' as \"G\", '0' as \"j\", '0' as \"n\", year(from_unixtime(data.log_time)) as \"Y\"";
$sql_group_by = 'group by "Y"';
$type = 2;
}
...
Писал "биллинг" попутно изучая пхп) скрипт вывода статистики
+91.8
...
if DM.LastCOID <> -1 then
begin
if Pos(IntToStr(DM.LastCOID), Label1.Caption) <= 0 then
begin
Label1.Caption := 'Телефон: ' + '(' + IntToStr(DM.LastCOID) + ')';
DataSet['CHANNELOUTERID'] := IntToStr(DM.LastCOID);
end;
end;
...
LastCOID - номер внешней линии, который отображается в лейбле Label1 и заносится в поле базы. Как и чем думал автор вставляя второе условие? Самое главное, для чего? В итоге, софтина иногда пропускала сохранение LastCOID в БД, тем самым портя статистику и настроение клиента.
+157
function ru_title() {
global $locale, $lang, $settings;
define("DIVIDER", $locale['title-00']);
$title = "";
if (stristr($_SERVER['REQUEST_URI'],"news")){
$title = $locale['title-16'];
if (isset($_GET['readmore'])){
$result = dbquery("SELECT * FROM ".DB_PREFIX."news WHERE news_id='".$_GET['readmore']."'");
if (dbrows($result) != 0) {
$data = dbarray($result);
$title = $data["news_subject"].DIVIDER.$title;
}
}
}
elseif (stristr($_SERVER['REQUEST_URI'],"contact")){
$title = $locale['title-01'];
}
elseif (stristr($_SERVER['REQUEST_URI'],"edit_profile")){
$title = $locale['title-02'];
}
elseif (stristr($_SERVER['REQUEST_URI'],"lostpassword")){
$title = $locale['title-03'];
}
elseif (stristr($_SERVER['REQUEST_URI'],"messages")){
$title = $locale['title-04'];
}
elseif (stristr($_SERVER['REQUEST_URI'],"photogallery")){
$title = $locale['title-05'];
}
elseif (stristr($_SERVER['REQUEST_URI'],"profile")){
$title = $locale['title-06'];
}
elseif (stristr($_SERVER['REQUEST_URI'],"register")){
$title = $locale['title-07'];
}
elseif (stristr($_SERVER['REQUEST_URI'],"search")){
$title = $locale['title-08'];
}
elseif (stristr($_SERVER['REQUEST_URI'],"submit")){
$title = $locale['title-09'];
}
elseif (stristr($_SERVER['REQUEST_URI'],"downloads")){
if ($_SERVER['PHP_SELF'] !== "/infusions/mod_downloads/downloads.php"){ // Sky edition
$title = $lang['downloads_000'];
if (isset($_GET['cat_id'])){
$result = dbquery("SELECT * FROM ".DB_PREFIX."download_cats WHERE download_cat_id='".$_GET['cat_id']."'");
if (dbrows($result) != 0) {
$data = dbarray($result);
$title = $data["download_cat_name"].DIVIDER.$title;
}
}
}
}
return $title.(($title == "") ? ("") : (DIVIDER));
}
Споcоб реализации динамических заголовков для одной популярной CMS
+131.3
function key_check($key) {
if ($key == '') { return ''; }
$key = preg_replace("/[^\w\xB2-\xB4\xBF-\xFF\xA5\xA8\xAA\xAF\xB8\xBA\s]/", "", $key );
if ($key =='_SERVER' OR $key =='_SESSION' OR $key =='_FILES' OR $key =='_REQUEST' OR $key =='GLOBALS') die("<h3>Error variable ".basename(__FILE__)." ".__LINE__."</h3>");
else return $key;
}
function str_check($str_val) {
if ($str_val == '') { return ''; }
if(preg_match("/<[^>]*script*\"?[^>]*>/i", $str_val)
or preg_match("/<[^>]*object*\"?[^>]*>/i", $str_val)
or preg_match("/<[^>]*applet*\"?[^>]*>/i", $str_val)
or preg_match("/<[^>]*form*\"?[^>]*>/i" , $str_val)
or preg_match("/&#\d+;{0,1}/i" , $str_val) ){
die("<h3>ERROR ".basename(__FILE__)." ".__LINE__."</h3>");
}
$str_val = str_replace( "&" , '&' , $str_val );
$str_val = str_replace( "<!--" , '<!--' , $str_val );
$str_val = str_replace( "-->" , '-->' , $str_val );
$str_val = str_replace( ">" , '>' , $str_val );
$str_val = str_replace( "<" , '<' , $str_val );
$str_val = str_replace( "\"" , '"' , $str_val );
$str_val = str_replace( "\r" , null , $str_val );
$str_val = str_notsqlatacs($str_val);
if (!get_magic_quotes_gpc()){$str_val=addslashes($str_val);}
return $str_val;
}
function str_notsqlatacs($str_val) {
$searcharray =array('/drop/i','/delete/i','/union/i','/char/i','/benchmark/i','/expression/i','/alert/i','/replace/i','/write/i','/document/i','/window/i','/script/i','/user_pass/i','/unescape/i','/eval/i','/form/i','/applet/i','/object/i','/user_login/i','/setTimeout/i','/onerror/i');
$replacearray=array('drop','delete','union','char','benchmark','Expression','Alert','Replace','Write','Document','Window','Script','User_pass','Unescape','Eval','Form','Applet','Object','User_login','/SetTimeout/i','/Onerror/i');//
$str_val=preg_replace($searcharray, $replacearray, $str_val);
return $str_val;
}
Фрагмент файла ./php/wojs.php "портального движка" WebCodePortalSystem версии 5.2. И вот так вся CMSка - два с половиной мегабайта говна.
+148
catch (Exception) { } // Nothing too bad hapens if we don't show next hint.
Обработка исключений, на демке точно не скорится)
+149
/**
* Я, функция, которая поможет узнать дату текущего дня
* @return Я вам верну дату текущего дня
*/
public String iGetDate() {
Date date = new Date();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
return dateFormat.format(date);
}
Каменты излишни
+144
"lang" "RU Padonogg"
// General strings
"monday" "Понидельниг"
"tuesday" "Вторниг"
"wednesday" "СРИда"
"thursday" "Читферг"
"friday" "Пядница"
"saturday" "Суббота"
"sunday" "ВосКРЫСенье"
"about" "О творенье"
"about_info" "Jimm Podonogg - Мобильный IM-клиент.\n\nВерсия ###VERSION### от ###DATE###.\nСборка: ###TARGET###\nМодули: ###MODULES###\n\nОфициальный сайт проекта: http://jimm.net.ru/\nСайт базовой версии: http://www.jimm.org/"
"absence" "При занятости"
"add_new" "Нофый"
"add_group" "Запиздячить группу"
"add_user" "Запиздячить жертву"
"add_to_list" "Запиздячить"
"addr" "Адрис"
"age" "Как молод"
"all_contact_except_this" "Фсех кроме этафа"
"all_contacts" "Фсех жертв"
"answer" "Отписатсо"
"async" "Дешефая передача"
"attention" "СМОТРИ БЛЯ!"
"auth" "Удовлетворение"
"autoanswer" "Афтопиздабол"
"auto_case" "Афтаригистр"
"auto_connect" "Вползать автоматом"
"auto_status" "Афтозапрос цвяточга"
"autojoin" "Афтовполз"
"back" "Обратна"
"birth_day" "Д Р"
"bring_up" "Активировать при фходящей маляве"
"cancel" "Нахь"
"captcha" "Написюль текстуху на рисунке"
"cell_phone" "Мобильничег"
"chat" "Тюнинг разборок"
"check_updates" "Проферядь обнавления"
"city" "Село"
"cl_chat" "Классический видог"
"clear" "Уничтожить"
"close" "Нах"
"color_scheme" "Схема цветов"
"common_status" "Обычный цветочег:"
"conn_type" "Тип состыкофки"
"conn_prop" "Тюнинг состыкофки"
"contacts_with_msg_at_top" "Жертвы с малявами в начале"
"context_menu" "КМ"
"connect" "Вползти"
"connecting" "Стыкуюсь..терпи"
"copy_text" "Сделать копию"
"copy_all_text" "Коп-ть всё"
"cost" "Цена"
"contact_list" "Список жертв"
"cp1251" "Win1251 кодировка"
"cpd" "Цена в день"
"cpp" "Цена пакета"
"critical_heap_level" "Ебучее значение хипа"
"currect_contact" "Эту жертву"
"currency" "Валюта"
"cyrillic" "Русский"
"days" "дн"
"dc_info" "Инфо о клиенте"
"del_group" "Нах группу"
"delete" "Нах"
"delete_all" "Нах все"
"delete_chat" "Нах разборку"
"delivery_notification" "Отдчёд о достафке маляв"
"deny" "На хуй удовлетворение"
"denyedby" "Тфой запрос на удовлетворение послал нах: "
"detect_encoding" "Автоопределение кодировки"
"depart" "Отдел"
"disconnect" "Съебнуть в офф"
"description" "Описание"
"detransliterate" "Abc->Абц"
"default" "По умолчанию"
"display_date" "Дата на главном табло"
"edit" "Переделать"
"editform" "Переделать тайничог о себе"
"email" "Мыло"
"error" "Хуйня"
"exit" "Съебатсо"
"ext_clhotkey0" "0"
"ext_clhotkey4" "4"
"ext_clhotkey6" "6"
"ext_clhotkeypound" "#"
"ext_clhotkeystar" "*"
"ext_clhotkeycall" "Звонок"
"ext_hotkey_action_none" "Не хуя"
"ext_hotkey_action_onoff" "Показ./скр. съебнувшихся"
"fax" "Факс"
"female" "Самку"
"female_male" "Похуй"
"filename" "Имя файла"
"find" "Рысъщу"
"firstname" "Обозвать так"
"free_heap" "Свободная память"
"ft_name" "Хуйнуть файл"
"ft_cam" "Хуйнуть орган"
"ft_transfer" "Захуячивание"