- 1
$need = explode(',', 'name,phone');
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+166
$need = explode(',', 'name,phone');
Оригинальный способ создания массивов
+162
if(!function_exists('getImg')){
function getImg($isVip)
{
$type = false;
if (isset($_GET['f']) && $_GET['f']) $type = 1;
if (isset($_GET['bl']) && $_GET['bl']) $type = 16;
if (isset($_GET['lw']) && $_GET['lw']) $type = 'author';
if (isset($_GET['sym']) && $_GET['sym'] && $isVip) $type = 2;
return $type;
}
}
Функция getImg: хм... название как бэ намекает нам, что должно на выходе получиться что-нибудь типа картинки или её адреса, НО НЕТ! нам возвращается какой-то тип...
Что это за тип (ну да, да, php бестиповой язык, но нужно же как-то хотя бы намёки на тип делать) - одному Богу известно, НО! эта переменная изначально логическая, потом ВНЕЗАПНО превпращается в число, ну и под конец может быть и строкой! (ну а почему бы и нет)
Причём конечно же всем очевидна последовательность: 1, 16, (опять-таки ВНЕЗАПНО) 'author', ну и по уже "понятной" логике в конце 2
Да, ну и разумеется вокруг оооочень много комментариев поясняющие этот кусок кода...
А вы на индусов ругаетесь... Так-то!
+144
Что такое скрипт Интернет магазина?
Скрипт интернет магазина – это набор файлов, позволяющий на своем сайте
организовать онлайн магазин.
Готовый скрипт интернет магазина
Скрипт php магазина - это готовое решение для создания интернет магазина с
максимальной экономией времени и денег. Если Вам нужна быстрая и качественная
разработка интернет магазина, то готовый скрипт электронного магазина именно то,
что Вам нужно.
Источник: http://shopcms-design.ru/
Думаю, что это всё же говнокод. На языке "русский" =)
+165
class microTimer {
function start() {
global $starttime;
$mtime = microtime();
$mtime = explode( ' ', $mtime );
$mtime = $mtime[1] + $mtime[0];
$starttime = $mtime;
}
function stop() {
global $starttime;
$mtime = microtime();
$mtime = explode( ' ', $mtime );
$mtime = $mtime[1] + $mtime[0];
$endtime = $mtime;
$totaltime = round( ($endtime - $starttime), 5 );
return $totaltime;
}
}
DLE 9.0
+133
<script id="tpl_top" type="text/html" style="display: none;"><a name="comment_<%= row.id %>"></a>
<table cellspacing="0" id="comment-cnt_<%= row.id %>" class="<%= row.tableClass %>">
<tr>
<% if (row.side === 2) { %>
<td width="5" class="transp_td"><div class="spacer"></div></td>
<% } %>
<td width="5" height="5" class="ug_1">
<div class="spacer"></div>
</td>
<td><div class="spacer"></div></td>
<td width="5" class="ug_2"><div class="spacer"></div></td>
<% if (row.side === 1) { %>
<td width="5" class="transp_td"><div class="spacer"></div></td>
<% } %>
</tr>
Фрагмент из http://holywars.ru/
Не могу определить, что за скрипт такой text/html, поэтому поместил в Кучу.
Если я туплю, поставьте 11 минусов за ламерство, и этот ГК исчезнет.
+171
define('ERROR', 1);
define('WARNING', 2);
define('PARSE', 4);
define('NOTICE', 8);
define('CORE_ERROR', 16);
define('CORE_WARNING', 32);
define('COMPILE_ERROR', 64);
define('COMPILE_WARNING', 128);
define('USER_ERROR', 256);
define('USER_WARNING', 512);
define('USER_NOTICE', 1024);
// ---------------------------
$errortype = array(
1=>'Ошибка',
2=>'Предупреждение!',
4=>'Ошибка разборщика',
8=>'Замечание',
16=>'Ошибка ядра',
32=>'Предупреждение ядра!',
64=>'Ошибка компиляции',
128=>'Предупреждение компиляции!',
256=>'Пользовательская Ошибка',
512=>'Пользовательскаое Предупреждение!',
1024=>'Пользовательскаое Замечание',
2048=>'Небольшое замечание',
8192=>'Устаревший код');
+160
<?php
require_once 'mainfunc.php';
$template->msg('SET TITLE', $conf['wiki']['title']);
$rev = intval(@$_GET['rev']);
if(@$_GET['ae']){session_destroy();unset($admin);}
?>
<h1><?= $conf['wiki']['title']; ?></h1>
<p><a href="create.php">[Создать статью]</a> <?php
if($rev) echo '<a href="index.php?rev=0">[Перевернуть]</a>';
else echo '<a href="index.php?rev=1">[Перевернуть]</a>';
?></p>
<?php
$tpr = array();
echo '<p>';
$fls = array();
foreach(scandir('files') as $k) if($k{0}!='.') $fls[]=$k;
natsort($fls);
if($rev) $fls=array_reverse($fls);
foreach($fls as $k){
if($k{0}=='-') continue;
$f=file('files/'.$k);
if($f[0]{0}=='#') $f[0]{0}=''; $tpr[] = '<a href="view.php?id='.$k.'">'.$f[0].'</a><br>';
}
$pnav = new PageNavigator($tpr, 'index.php?page=$p&rev='.$rev);
$pnav->page();
echo '</p>';
echo '<p class="nav">';
$pnav->panel();
echo '</p>';
if(@$admin) echo '<p>Вы админ <a href="index.php?ae=1">[X]</a></p>';
$template->act(); //Запускаем вывод
?>
Инновационный вики-движок для вап-интернета, в действии можно посмотреть здесь: http://wiki.wup.ru/
От одного index.php становится худо.
Плюс работает это еще с помощью какого-то фреймворка, при этом весь html размазан практически по всему проекту, да и все это еще на файлах.
Куча дыр, фильтрующие регулярки не пашут, даже банального антифлуда нет - можно жать f5 и радоваться.
Полностью сорцы можно скачать тут: http://wiki.wup.ru/wikibackups/
+144
Но имей ввиду, в реали, когда на работу пойдёшь, в СУБД у тебя уже скорее всего будет помойка, в том числе с триггерами.
К этому надо привыкнуть, так как никакие уговоры убрать триггера на «товарищей» не подействуют, наоборот разозлят,
над тобой будут смеяться и скажут, что крутые пацаны работают только на триггерах.
От хакерских атак одно подключение не спасёт, это я просто так высмеиваю шибко «умных» людей.
Eсть другая идея - на странице регистрации высвети кнопки с цифрами и алфавитом чтобы пользователь вводил пароль не с клавиатуры,
а щёлкая мышью по кнопкам. Сами кнопки можешь в случайном порядке расположить.
Потом мы вместе с тобой будем над хакерами смеяться.
Max Pro рассуждает на тему безопасности.
http://sql.ru/forum/actualthread.aspx?tid=787435
тут пытаемся выманить его на разговор про серверный жаваскрипт
http://www.sql.ru/forum/memberinfo.aspx?mid=14149
тут ссылка на его профиль раз
http://www.aspnetmania.com/Users/User/1614.html
тут ссылка на профиль два.
сообщения доставляют
http://aspnetmania.com/Blogs/1614.html
тут старый блог
+144
#include <iostream>
using namespace std;
void f(double *x1,double *x2,double *x3)
{
if (((*x1>*x2)&&(*x1<*x3))||((*x1<*x2)&&(*x1>*x3)))
*x1=(*x2+*x3)/2;
if (((*x2>*x1)&&(*x2<*x3))||((*x2<*x1)&&(*x2>*x3)))
*x2=(*x1+*x3)/2;
if (((*x3>*x1)&&(*x3<*x2))||((*x3<*x1)&&(*x3>*x2)))
*x3=(*x2+*x1)/2;
}
int main()
{
double x1,x2,x3;
cin>>x1>>x2>>x3;
double *y1=&x1;
double *y2=&x2;
double *y3=&x3;
f(y1,y2,y3);
cout<<x1<<' '<<x2<<' '<<x3;
return 0;
}
Креатив.
+69
/**
* Инициализация набора действий, определенных для контейнера.
* @param context
* @throws DfException
*/
protected void initializeTransitions(EditorContext context) throws DfException{
AbstractDocumentModel documentModel = getDocumentModel();
AbstractState state = documentModel.getLifeCyclePolicy(context).getState(context);
if (!documentModel.isNew())
{
addTransition(TransitionName.CREATE_DETACHED_COMMISSION, TransitionHandler.CREATE_DETACHED_COMMISSION);
addTransition(TransitionName.PRINT, TransitionHandler.PRINT);
}
AbstractTaskModel taskModel = context.getTaskModel();
if (taskModel instanceof ReviewDocumentTaskModel && !(taskModel instanceof ExpeditionaryProcessingDocumentTaskModel)){
// && !(taskModel instanceof AttachFileAndReviewDocumentTaskModel)){
if ((taskModel instanceof AttachFileToDocumentTaskModel || taskModel instanceof WaitForScanningTaskModel) && ((documentModel instanceof InternalDocumentModel) || (documentModel instanceof OutgoingDocumentModel) || (documentModel instanceof IncomingDocumentModel)))
addTransition(TransitionName.PRINT_BARCODE, TransitionHandler.PRINT_BARCODE);
if (taskModel instanceof AbstractDocumentTaskModel){
if ( state instanceof AbstractDraftState ){
if( state instanceof NewProtocolDraftState)
addTransition(ContainerAction.ACTION_NAME, TransitionName.SEND_DRAFT, TransitionName.REGISTER, TransitionHandler.SEND_DRAFT);
else if (state instanceof NewDraftState)
addTransition(TransitionName.SEND_DRAFT, TransitionHandler.SEND_DRAFT);
if (state instanceof AbstractApprovalDraftState)
addTransition(TransitionName.REWORK_DRAFT, TransitionHandler.REWORK_DRAFT);
if (state instanceof AnalyseDraftState)
addTransition(TransitionName.SEND_DRAFT, TransitionDescription.SEND_DRAFT_ANALYSE, TransitionHandler.SEND_DRAFT);
if (state instanceof ControlDraftState)
addTransition(TransitionName.SEND_DRAFT, TransitionDescription.SEND_DRAFT_CONTROL, TransitionHandler.SEND_DRAFT);
if (state instanceof ApproveDraftState)
addTransition(TransitionName.SEND_DRAFT, TransitionDescription.SEND_DRAFT_APPROVAL, TransitionHandler.SEND_DRAFT);
if (state instanceof SignDraftState)
addTransition(TransitionName.SEND_DRAFT, TransitionDescription.SEND_DRAFT_SIGN, TransitionHandler.SEND_DRAFT);
if (state instanceof ExternalApproveDraftState)
addTransition(TransitionName.SEND_DRAFT, TransitionDescription.SEND_DRAFT_APPROVAL, TransitionHandler.SEND_DRAFT);
if (state instanceof ControlApproveDraftState)
addTransition(TransitionName.SEND_DRAFT, TransitionDescription.SEND_DRAFT_CONTROLED, TransitionHandler.SEND_DRAFT);
if (state instanceof ConfirmationDraftState)
addTransition(TransitionName.SEND_DRAFT, TransitionDescription.SEND_DRAFT_CONFIRM, TransitionHandler.SEND_DRAFT);
}
}
}
.................. несколько страниц такого кода ...........................
if (state instanceof AbstractApprovalDraftState ||
state instanceof ReworkDraftState ||
state instanceof NewDocumentState ||
state instanceof RegisterDocumentState ||
state instanceof ReviewDocumentState ||
state instanceof ExecuteDocumentState){
addTransition(TransitionName.SAVE, TransitionHandler.SAVE);
}
super.initializeTransitions(context);
}
Автор решил захардкодить в одном месте логику переходов между всеми состояниями всех жизненных циклов всех документов, реализованных в системе документооборота. Получился говнокод-BPM-движок. А внешне код очень даже солидный: с константами и комментариями... и названиями классов вроде: ExpeditionaryProcessingDocumentTaskModel