- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
<div style="position:relative">
Всего товаров: 1<br />
На сумму: 5 750,00
</div>
<script>$("#korzina").load("/korzina.php",{'fsdfsad':true});</script>
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+162
<div style="position:relative">
Всего товаров: 1<br />
На сумму: 5 750,00
</div>
<script>$("#korzina").load("/korzina.php",{'fsdfsad':true});</script>
Сей кодъ подгружается аяксом из скрипта /korzina.php в div#korzina. Естественно, тут же выполняется строчка номер 6, и онъ ещё раз подгружается. И ещё раз. И ещё раз...
Долго думал, почему так тормозит браузер и почему по vnstat'у 64 кбит/с вверх и 24 вниз при простом просмотре страницы. Думаю, админ сервера (там стоит Apache, кеке) хотел бы удавить аффтара не меньше, чем я. Сайт в продакшне с марта.
+101
type
// смотрите, как не надо делать и почему придумали ООП
TProc = procedure;
TGoProc = function: boolean;
TSizeProc = function: integer;
TGetConfigProc = function: string;
TApplyConfigProc = procedure(SM: PStringMap);
TDeviceProc = record
InitControls: TProc;
MoveControls: TProc;
Go: TGoProc;
MaxH, MinH: TSizeProc;
GetConfig: TGetConfigProc;
ApplyConfig: TApplyConfigProc;
end;
const
DeviceProcs: array [TDevice] of TDeviceProc = (
(InitControls: ETR.InitControls; MoveControls: ETR.MoveControls; Go: ETR.Go; MaxH: ETR.MaxH; MinH: ETR.MinH; GetConfig: ETR.GetConfig; ApplyConfig: ETR.ApplyConfig),
(InitControls: TS_NSH.InitControls; MoveControls: TS_NSH.MoveControls; Go: TS_NSH.Go; MaxH: TS_NSH.MaxH; MinH: TS_NSH.MinH; GetConfig: TS_NSH.GetConfig; ApplyConfig: TS_NSH.ApplyConfig),
(InitControls: TS_IND.InitControls; MoveControls: TS_IND.MoveControls; Go: TS_IND.Go; MaxH: TS_IND.MaxH; MinH: TS_IND.MinH; GetConfig: TS_IND.GetConfig; ApplyConfig: TS_IND.ApplyConfig),
(InitControls: TP_NSH.InitControls; MoveControls: TP_NSH.MoveControls; Go: TP_NSH.Go; MaxH: TP_NSH.MaxH; MinH: TP_NSH.MinH; GetConfig: TP_NSH.GetConfig; ApplyConfig: TP_NSH.ApplyConfig),
(InitControls: TP_IND.InitControls; MoveControls: TP_IND.MoveControls; Go: TP_IND.Go; MaxH: TP_IND.MaxH; MinH: TP_IND.MinH; GetConfig: TP_IND.GetConfig; ApplyConfig: TP_IND.ApplyConfig)
);
Вот до чего доводит ненависть к ООП.
ОПП - это хорошо, ООП не надо ненавидеть.
−125
CREATE TABLE IF NOT EXISTS `ls_user_administrator` (
`user_id` int(11) unsigned NOT NULL,
UNIQUE KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Видимо сделать столбец 'administrator' в таблице `ls_user` и ставить в него 1 или 0 - это слишком просто.. Или тут скрыта какая-то оптимизация?
Дамп спёрт из LiveStreet.
+128
int zerocheck(float a,float b,float c,int d){
if(a==0){
if(b==0){
if(c==0)return 0;
else return 1;
}else{
if(d==1){
y_1=c/b;
return 2;
}else{
y2=c/b;
return 2;
}
}
}else{
if(b==0){
if(d==1){
x1=c/a;
return 3;
}else{
x2=c/a;
return 3;
}
}else{
return 4;
}
}
}
int main() {
float a,b,c,d,e,f;
int ch1,ch2;
.....
ch1=zerocheck(a,b,c,1);
ch2=zerocheck(d,e,f,2);
if(ch1==1)printf("\nNo answer. 0*X + 0*Y = %f",c);
if(ch2==1)printf("\nNo answer. 0*X + 0*Y = %f",f);
if(ch1==0 && ch2==0)printf("\nAny variable is answer!");
if(ch1==0 && ch2==2)printf("\nX - any. Y = %f",y2);
if(ch1==0 && ch2==3)printf("\nX = %f. Y - any",x2);
if(ch1==0 && ch2==4)printf("\n%f*X + %f*Y = %f",d,e,f);
if(ch1==2 && ch2==0)printf("\nX - any. Y = %f",y_1);
if(ch1==2 && ch2==2){
if(y_1==y2)printf("\nX - any. Y = %f",y_1);
else printf("\nY1 (%f) != Y2 (%f)",y_1,y2);
}
if(ch1==2 && ch2==3)printf("\nX = %f. Y = %f",x2,y_1);
if(ch1==2 && ch2==4){
y2=y_1;
x2=(f-e*y2)/d;
printf("\nX = %f. Y = %f",x2,y_1);
}
if(ch1==3 && ch2==0)printf("\nX = %f. Y - any",x1);
if(ch1==3 && ch2==2)printf("\nX = %f. Y = %f",x1,y2);
if(ch1==3 && ch2==3){
if(x1==x2)printf("\nX = %f. Y - any",x1);
else printf("\nX1 (%f) != X2 (%f)",x1,x2);
}
if(ch1==3 && ch2==4){
x2=x1;
y2=(f-d*x2)/e;
printf("\nX = %f. Y = %f",x1,y2);
}
if(ch1==4 && ch2==0)printf("\n%f*X + %f*Y = %f",a,b,c);
if(ch1==4 && ch2==2){
y_1=y2;
x1=(c-b*y_1)/a;
printf("\nX = %f. Y = %f",x1,y2);
}
if(ch1==4 && ch2==3){
x1=x2;
y_1=(c-a*x1)/b;
printf("\nX = %f. Y = %f",x2,y_1);
}
if(ch1==4 && ch2==4){
if(a/b==d/e)printf("\nNo answer. Lines would be parallel or qeual.");
else{
x1=(b*f-c*e)/(d*b-a*e);
y_1=(c-a*x1)/b;
printf("\nX = %f. Y = %f",x1,y_1);
}
}
printf("\n");
print_lines();
return 0;
}
Hello, C!
+101
private void SetValue(UserStructure item, int id, int tabKey, int elementKey, string newValue)
{
if (!item.Chats.ContainsKey(id))
throw new KeyNotFoundException(String.Format(
"Чат с id = '{0}' недоступен с этой учётной записи", id));
if (item.UserName != item.Chats[id].Own)
{
switch (item.Chats[id].UserPremission)
{
case UserPremission.AccountLocked:
throw new AccessViolationException(String.Format(
"Чат с id = '{0}' заблокирован", id));
}
}
int assemblyNumber = item.Chats[id].AssemplyNumber;
if (!_contentManager.AssembplyContent.ContainsKey(assemblyNumber))
throw new NotImplementedException(String.Format(
"Для сборки = '{0}' контент не реализован", assemblyNumber));
Dictionary<int, TabItem> tabs = _contentManager.AssembplyContent[assemblyNumber];
if (!tabs.ContainsKey(tabKey))
throw new NotImplementedException(String.Format(
"Вкладка с ключём = '{0}' в сборке = '{1}' не существует", tabKey, assemblyNumber));
if (!tabs[tabKey].Elements.ContainsKey(elementKey))
throw new NotImplementedException(String.Format(
"Элемент с ключём = '{0}' во вкладке = '{1}' и сборке = '{2}' не существует",
elementKey, tabKey, assemblyNumber));
ElementItem element = tabs[tabKey].Elements[elementKey];
GetSetParametrs getSetParametrs = new GetSetParametrs(item.Chats[id]);
switch (element.ContentType)
{
case ContentType.text_box:
switch (element.Resource)
{
case ResourceType.file:
getSetParametrs.SetValueToFile(element.Value, newValue);
break;
...............................................
case ResourceType.change_login:
getSetParametrs.SetValueToChangeLogin(item.UserName, newValue);
break;
case ResourceType.change_password:
getSetParametrs.SetValueToChangePassword(newValue);
break;
}
break;
case ContentType.payment_button:
switch (element.Resource)
{
case ResourceType.extend_chat:
getSetParametrs.PayForChat();
break;
case ResourceType.clear_credentials:
getSetParametrs.SetValueToClearCredentials(element.Price);
break;
case ResourceType.clear_users:
getSetParametrs.SetValueToClearUsers(element.Price);
break;
}
break;
case ContentType.money_transfer:
switch (element.Resource)
{
case ResourceType.money_to_chat:
getSetParametrs.SetValueToMoneyTransfer(item.MainChat, newValue);
break;
}
break;
default:
throw new FieldAccessException(String.Format(
"Ресурс '{0}' с ключём = '{1}' во вкладке = '{2}' и сборке = '{3}' недоступен для редакирования",
element.Resource, elementKey, tabKey, assemblyNumber));
}
}
Люди, не гавнокод ли?
Напрягает объёмность метода.
А сколько по вашему максимальное кол-во строк в методе?
Кодинг мой, приму любую критику. По поводу использования встроенных исключений попрошу промолчать
+163
<?php
if (isset($_POST['author']))
{
$author = $_POST['author'];
}
if (isset($_POST['text']))
{
$text = $_POST['text'];
}
if (isset($_POST['pr']))
{
$pr = $_POST['pr'];
}
if (isset($_POST['sub_com']))
{
$sub_com = $_POST['sub_com'];
}
if (isset($_POST['surname']))
{
$surname = $_POST['surname'];
}
if (isset($_POST['tel']))
{
$tel = $_POST['tel'];
}
if (isset($sab_com))/*если нажата кнопка*/
{
if (isset($author)) {trim($author);}/*убираем лишние пробелы*/
else {$author="";}
if (isset($text)) {trim($text);}/*убираем лишние пробелы*/
else {$textr="";}
if (isset($surname)) {trim($surname);}/*убираем лишние пробелы*/
else {$surname="";}
if (isset($tel)) {trim($tel);}/*убираем лишние пробелы*/
else {$tel="";}
if (empty($author) or empty($text) or empty($surname) or empty($tel))/*если пустая переменная автор или текст*/
{
exit ("<p align ='center'><strong><h1>Вы ввели не всю информацию, вернитесь назад и заполните все поля. </h1></strong> <br><br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>");
}/*останавливаем программу ,всталяем кнопку,даем команду при нажатии вернутся назад на 1 шаг*/
$author = stripslashes($author);/*охрана от слешов*/
$text = stripslashes($text);/*охрана от слешов*/
$surname = stripslashes($surname);/*охрана от слешов*/
$tel = stripslashes($tel);/*охрана от слешов*/
$author = htmlspecialchars($author);/*охрана от различных тегов*/
$text = htmlspecialchars($text);/*охрана от различных тегов*/
$surname = htmlspecialchars($surname);/*охрана от различных тегов*/
$tel = htmlspecialchars($tel);/*охрана от различных тегов*/
if ($pr == 777)
{
$address = '[email protected]';
$sub = "Появился новый заказчик";/**/
$mes = "Имя заказчика: $author \n Фамилия заказчика: $surname \n телефон заказчика: $tel\nСодержание письма: $text";
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\n");
if ($verify == 'true')
{
echo ("<p align ='center'><strong><h1>Ваша заявка успешно отправлена.</h1></strong> <br><br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>");
}
}
else
{
exit ("<p>Вы ввели неверные числа с картинки на предыдущей странице. <br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>");
}
}
?>
Такой вот обработчик.
http://ruseller-board.com/viewtopic.php?f=41&t=3363
+175
//так как в mysql есть ограничение на джойны (61), делаем следующим образом:...
−121
@items = keys %{{ map { $_ => 1} @items }};
Удаление повторов из массива.
Вроде и не ГК, но, блин, такие вырвиглазные конструкции меня порой убивают... Мои глаза...
+84
<TABLE Border=0 cellpadding=1 cellspacing=1 width=100%>
<tr><td valign=top width=49%><table Border=0 cellpadding=0 cellspacing=0 width=100% height=100%><tr>
<td><TABLE valign=top Border=0 cellpadding=0 cellspacing=0 bgcolor=#EEEEEE width=100% height=100%>
<tr height=1><td align=center colspan=6 class=text2 bgcolor='#91A9B0'>Список подразделений</td></tr>
<tr height=1><td colspan=6 class='TablHeadText' bgcolor=#EDF1F2><a href='javascript:GoTown(1)'>.. наверх</a></td></tr><tr height=1><td align=center class=TitleName bgcolor=#E0E7E9> </td><td align=center class=TitleName bgcolor=#E0E7E9>Наименование</td><td align=center class=TitleName bgcolor=#E0E7E9>Бранч</td><td align=center class=TitleName bgcolor=#E0E7E9 Title='Группа'>Гр.</td><td align=center class=TitleName bgcolor=#E0E7E9 Title='Форма создания'>Инд. 1</td><td align=center class=TitleName bgcolor=#E0E7E9 Title='Целевая направленность'>Инд. 2</td></tr><tr><td bgcolor=#EDF1F2 width=1 align=right class=link vAlign=top>+</td><td bgcolor=#EDF1F2 class=linktext vAlign=top></td><td bgcolor=#EDF1F2 class='TablHeadText' align=center></td><td align=center bgcolor=#EDF1F2 class='TablHeadText' align=center>ГБ</td><td align=center bgcolor=#EDF1F2 class='TablHeadText' align=center> </td><td align=center bgcolor=#EDF1F2 class='TablHeadText' align=center> </td><td bgcolor=#E0E7E9 class='TablHeadText' align=center>DOH0</td><td align=center bgcolor=#E0E7E9 class='TablHeadText' align=center>РУ</td><td align=center bgcolor=#E0E7E9 class='TablHeadText' align=center> </td><td align=center bgcolor=#E0E7E9 class='TablHeadText' align=center> </td></tr>
и наверное килобайт 200 такого <td align=center bgcolor=#E0E7E9 class='TablHeadText'> треша
+111
double f_x (double x, double y, int nom)
{
double f_x[]={x+y, x*y, x*y, sqrt(x*x + y*y), cos(x)/sin(y)};
return f_x[nom];
}
Нужна одна из функций :-)