- 1
- 2
- 3
- 4
function assign($params)
{
return $params[0];
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+166
function assign($params)
{
return $params[0];
}
Функция с одной коммерческой cms. Можно же обойтись и без функции. Да и желательно сделать проверку на существование переменной.
+141
#define N2(n) #n"0",#n"1",#n"2",#n"3",#n"4",#n"5",#n"6",#n"7",#n"8",#n"9"
#define N30(n) #n N2(),#n N2(1),#n N2(2),#n N2(3),#n N2(4),#n N2(5),#n N2(6),#n N2(7),#n N2(8),#n N2(9)
#define N3(n,k) #n#k"0",#n#k"1",#n#k"2",#n#k"3",#n#k"4",#n#k"5",#n#k"6",#n#k"7",#n#k"8",#n#k"9"
#define N4(k) N3(k,0),N3(k,1),N3(k,2),N3(k,3),N3(k,4),N3(k,5),N3(k,6),N3(k,7),N3(k,8),N3(k,9)
#define N5 N30(),N4(1),N4(2),N4(3),N4(4),N4(5),N4(6),N4(7),N4(8),N4(9)
const char s[][4]={N5};
const int s_size = sizeof(s)/sizeof(s[0]);
void print_number(int n) {
if (n<s_size) {
printf("!%s\n",s[n]);
}
else {
printf("?%d\n",n);
}
}
Отсылка к #3376 http://govnokod.ru/3376
Вопрос к общественности: что бОльший говнокод, >100 строк строковых констант или 5-строчный пассаж на макросах?
+123
string callPage = CallPage;
if (callPage != "Checkout.aspx")
{
callPage = "Checkout.aspx";
}
ServerTransfer(callPage + "?makerefresh=true", Server, Request);
Найди лишнее
+101
type Table = record
f1, f2, f3, f4, f5: integer;
end;
procedure Sort(a: array of Table; L, R: integer; Shift: integer);
begin
// что-то там...
// сравнение элементов:
if pinteger(size_t(@a[i])+Shift)^ < pinteger(size_t(@a[j])+Shift)^
end;
Использование: Sort(a, 0, Length(a) - 1, size_t(@a[0].f4) - size_t(@a[0]))
сортировка по полю f4.
+147
#include <stdio.h>
int main(int t,int _,char*a)
{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86, 0, a+1 )+a)):1,t<_?main(t+1, _, a ):3,main ( -94, -27+t, a
)&&t == 2 ?_<13 ?main ( 2, _+1, "%s %d %d\n" ):9:16:t<0?t<-72?main(_,
t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+\
,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/\
+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){n\
l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
:t<-50?_==*a ?putchar(a[31]):main(-65,_,a+1):main((*a == '/')+t,_,a\
+1 ):0<t?main ( 2, 2 , "%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc \
i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}
Консольный вывод этой программы:
On the first day of Christmas my true love gave to me
a partridge in a pear tree.
On the second day of Christmas my true love gave to me
two turtle doves
and a partridge in a pear tree.
...
[Все не вместилось]
...
On the tenth day of Christmas my true love gave to me
ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
On the eleventh day of Christmas my true love gave to me
eleven pipers piping, ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
On the twelfth day of Christmas my true love gave to me
twelve drummers drumming, eleven pipers piping, ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
+101
....
for i:=1 to 4 do for j:=1 to 4 do begin a[i,j]:=b; b:=b-1; end;
for i:=1 to 4 do for j:=1 to 4 do if a[i,j]=16 then begin k:=i;l:=j; end;
for i:=1 to 4 do
for j:=1 to 4 do
begin
gotoxy(5+3*i,5+2*j);
write(a[i,j]);
end;
....
http://otvet.mail.ru/question/52501602/
+152
<?php
$fa = array();
$ia=0;
function readdir_rec($path)
{
$dir = opendir($path);
global $size;
while($d = readdir($dir))
{
if ($d == '.' || $d == '..') continue;
if (is_dir($path.'/'.$d))
{
global $fa;
global $ia;
$fa[$ia] = $path.'/'.$d;
$ia++;
readdir_rec($path.'/'.$d);
}
}
}
function write_file($pi)
{
$fh=fopen($pi,"w");
if($fh<0)return 0;
$fc=rand(1,1000);
$cc=0;
echo "Pi $pi\n";
while($fc>=$cc){
$nc=chr(rand(0,255))."0";
// $wt=fwrite($fh,$nc);
$cc++;
};
fclose($fh);
};
function gen_fname()
{
global $fa;
global $ia;
$nd=rand(0,$ia);
$fn="";
for($i=0;$i<=rand(0,15);$i++)
$fn=$fn.chr(rand(0,255));
$fn.=".txt";
return $fa[$nd]."/".$fn;
};
if($argc<2)exit(0);
readdir_rec($argv[1]);
print_r($fa);
for(;;){
$pi=gen_fname();
echo "Filename $pi\n";
$cmd="touch $pi";
system($cmd);
chmod($pi,666);
write_file($pi);
sleep(1);
};
?>
Спамилка, создаёт кучу файлов.
+174
BOOL CAnalysisWindow::OnControlStatus(void* msg)
{
TypeControlStatus* ControlStatus = (TypeControlStatus*)msg;
if (ControlStatus->Total > 12)
{
m_ProgressBar.ShowWindow(0);
m_ProgressBar2.ShowWindow(0);
...
m_ProgressBar12.ShowWindow(0);
}
else
{
m_ProgressBar.ShowWindow(ControlStatus->Total > 0);
m_ProgressBar2.ShowWindow(ControlStatus->Total > 1);
...
m_ProgressBar12.ShowWindow(ControlStatus->Total > 11);
}
if (ControlStatus->Current == 1)
{
m_ProgressBar.SetRange(0, ControlStatus->Total);
}
m_ProgressBar.SetPos(ControlStatus->Current);
if (ControlStatus->Current == 2)
{
m_ProgressBar2.SetRange(1, ControlStatus->Total);
}
m_ProgressBar2.SetPos(ControlStatus->Current);
...
if (ControlStatus->Current == 12)
{
m_ProgressBar12.SetRange(11, ControlStatus->Total);
}
m_ProgressBar12.SetPos(ControlStatus->Current);
return TRUE;
}
Как сделать прогресс бар c 12-ю делениями? Ответ прост: воспользоваться 12-ю прогресс барами, по одному на каждое деление.
Самое интересное, как отрисовывается общий прогресс на 12 маленьких прогресс барах.
+163
...
$kernel['title'] = strval( $kernel['doc']['title'] == "" ? $kernel['node']['title'] : $kernel['doc']['title'] );
$kernel['id_maket'] = intval( $kernel['doc']['id_maket'] == "" ? $kernel['node']['id_maket'] : $kernel['doc']['id_maket'] );
$kernel['keywords'] = strval( $kernel['doc']['keywords'] == "" ? $kernel['node']['keywords'] : $kernel['doc']['keywords'] );
$kernel['description'] = strval( $kernel['doc']['description'] == "" ? $kernel['node']['description'] : $kernel['doc']['description'] );
clearstatcache( );
ob_start( );
$mtime = NULL;
$path = TMP_DIR."/htdoc#".urlencode( $kernel['node']['fullpath'].$kernel['doc']['path'] ).".html#".$kernel['doc']['id'].".phpt";
if ( file_exists( $path ) )
{
$mtime = filemtime( $path );
}
if ( $mtime && $mtime == $kernel['doc']['updated'] )
{
}
else if ( !$mtime || $mtime < $kernel['doc']['updated'] )
{
if ( lockwrite( $path, $kernel['doc']['content'] ) && $kernel['doc']['updated'] )
{
touch( $path, $kernel['doc']['updated'] );
}
}
else if ( $kernel['config']['sync'] && $kernel['doc']['updated'] < $mtime )
{
$content = lockread( $path );
if ( $content !== NULL )
{
$kernel['tree']->updatedoc( $kernel['doc']['id'], array( "content" => $content, "updated" => $mtime ) );
}
unset( $content );
}
if ( $kernel['doc']['eval'] )
{
template( $path );
}
else
{
readfile( $path );
}
$kernel['content'] = ob_get_contents( );
if ( $kernel['doc']['path'] == "index" && $kernel['content'] == "" && $kernel['node']['id'] != 1 )
{
module( "htdocs/main.php" );
$kernel['content'] = trim( ob_get_contents( ) );
if ( $kernel['content'] == "" && $kernel['node']['isparent'] )
{
$childs = $kernel['tree']->branch( $kernel['node']['id'], array( "fullpath" ), "", true );
if ( is_array( $childs ) && !empty( $childs['1'] ) )
{
$kernel['http_code'] = 403;
header( "HTTP/1.1 301 Moved Permanently" );
$location = "http://".$_SERVER['HTTP_HOST'].$childs['1']['fullpath'];
if ( $_SERVER['QUERY_STRING'] != "" )
{
$location .= "?".$_SERVER['QUERY_STRING'];
}
header( "Location: ".$location );
unset( $childs );
exit( 0 );
}
}
}
$kernel['doc']['content'] =& $kernel['content'];
ob_end_clean( );
unset( $mtime );
unset( $path );
if ( $kernel['node']['eval'] != "" )
{
$mtime = NULL;
$path = TMP_DIR."/httree#".urlencode( $kernel['node']['fullpath'] )."#".$kernel['node']['id'].".phpt";
if ( file_exists( $path ) )
{
$mtime = filemtime( $path );
}
if ( $mtime && $mtime == $kernel['node']['updated'] )
{
}
else if ( !$mtime || $mtime < $kernel['node']['updated'] )
{
if ( lockwrite( $path, $kernel['node']['eval'] ) && $kernel['node']['updated'] )
{
touch( $path, $kernel['node']['updated'] );
}
}
else if ( $kernel['config']['sync'] && $kernel['node']['updated'] < $mtime )
{
$content = lockread( $path );
if ( $content !== NULL )
{
$kernel['tree']->update( $kernel['node']['id'], array( "eval" => $content, "updated" => $mtime ) );
}
unset( $content );
}
template( $path );
unset( $mtime );
unset( $path );
}
...
Весьма популярная в Красноярске Aquilon CMS (разработчик Интекмедиа http://www.intecmedia.ru/). Это кусок ядра - а именно некое кэширование. Теперь стало понятно, почему все ядро было зашифровано :)
+166
<?php
# bla bla bla...
$friends->add(new Friend('Den'));
$user->add($friends);
$friends->add($user);
$friends->getRecursiveDescription(); # сбой!
# bla bla bla...
?>
Крах композита "вешает" веб-сервер!