- 1
<cms:CMSWebPartZone ZoneID="AnalZone" runat="server" />
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
<cms:CMSWebPartZone ZoneID="AnalZone" runat="server" />
ASP.NET, аналитика
+1
[2 Cubi Gold] <a target="_blank" href="index.php?vote=xtreme">xtremetop.com</a>
<?php
if ($_GET["vote"] == "xtreme")
{
$host='localhost';
$database='pw';
$user='root';
$pswd='password';
$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
mysql_select_db($database) or die("Не могу подключиться к базе.");
$search=CAuth::getLoggedName();
$search=mysql_real_escape_string($search);
$query="SELECT xtreme FROM `users` where name='".$search."'";
$res = mysql_query($query);
$row = mysql_fetch_row($res);
$dateVote=strtotime($row[0]);
$dateVote2=$row[0];
$nullDate="0000-00-00 00:00:00";
$nullDate = strtotime($nullDate);
$now=date("Y-m-d H:i:s");
$now=mysql_real_escape_string($now);
if($dateVote==$nullDate)
{
$query="UPDATE users SET xtreme='$now' WHERE name='$search'";
$query = mysql_query($query);
//запись в лог и редирект
$log_file="/var/www/html/log.txt";
$f=fopen($log_file,"a+");
$ip=getenv("REMOTE_ADDR");
fputs($f, "\n325325253\t" .date("d.m.Y H:i:s").' '.$ip."\t".CAuth::getLoggedName().' '."\t1");
fclose($f);
echo "\nYou will be redirected to xtremetop...";
echo "<meta http-equiv='Refresh' content='3;URL=http://google.ru'>";
}
else if ((strtotime($now)-strtotime($dateVote2)) < 21600)
{
echo "You can't vote. Please wait ",21600 - (strtotime($now)-strtotime($dateVote2))," seconds.";
}
else
{
$query="UPDATE users SET xtreme='$now' WHERE name='$search'";
$query = mysql_query($query);
//запись в лог и редирект
$log_file="/var/www/html/log.txt";
$f=fopen($log_file,"a+");
$ip=getenv("REMOTE_ADDR");
fputs($f, "\n325325253\t" .date("d.m.Y H:i:s").' '.$ip."\t".CAuth::getLoggedName().' '."\t1");
fclose($f);
echo "\nYou will be redirected to xtremetop...";
echo "<meta http-equiv='Refresh' content='3;URL=http://google.ru'>";
}
}
?>
Можете ли вы найти уязвимость?
Ну хоть с этим у него хорошо )))
+4
#define RandomNumbers_count 16
static unsigned char RandomNumbers[] =
{
7, 167, 203, 54,
32, 78, 164, 112,
237, 182, 75, 96,
135, 13, 42, 27
};
static unsigned char CurrUrandPos = 0;
void getURandom(void *buf, size_t size)
{
if (size == 0)
return;
for (size_t i = 0; i < size; i++)
{
((char*)buf)[i] = RandomNumbers[CurrUrandPos];
CurrUrandPos = (CurrUrandPos + 1) % RandomNumbers_count;
}
}
Генератор псевдослучайных чисел: избавляемся от платформозависимого кода.
−1
if ($Module == 'success') MessageSend(3, 'успешно', '/');
else if ($Module == 'fail') MessageSend(1, 'Невозможно', '/');
if ($_POST['LMI_PREREQUEST'] == 1) {
if ($_POST['LMI_PAYEE_PURSE'] == 'Rкошелек') echo 'YES';
} else {
$key = $_POST['LMI_PAYEE_PURSE'].$_POST['LMI_PAYMENT_AMOUNT'].$_POST['LMI_PAYMENT_NO'].$_POST['LMI_MODE'].$_POST['LMI_SYS_INVS_NO'].$_POST['LMI_SYS_TRANS_NO'].$_POST['LMI_SYS_TRANS_DATE'].'Сикретный ключь'.$_POST['LMI_PAYER_PURSE'].$_POST['LMI_PAYER_WM'];
if (strtoupper(hash('sha256', $key)) != $_POST['LMI_HASH']) exit;
$ID = FormChars($_POST['id']);
$Row = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT `login`, `webmoney` FROM `users` WHERE `id` = $ID"));
if ($Row['login']) mysqli_query($CONNECT, "INSERT INTO `payment` VALUES('', '$Row[login]', $_POST[LMI_PAYMENT_AMOUNT], $_POST[Data])");
$Rub = $Row['webmoney'] + $_POST['LMI_PAYMENT_AMOUNT'];
mysqli_query($CONNECT, "UPDATE `users` SET `webmoney` = $Rub WHERE `id` = $ID");
}
Ребят подскажите пожалуста , мне кажется этот код бред использовать . обратите внимание на последних 2 строчки , я их сам написал чтобы вывести общии баланс пользователя. все работает ! а предчуствие хреновое
+3
function get_user_info($client, $param)
{
global $DATABASE;
$getparam = $DATABASE()....;
if($getparam)
{
return true;
}
else
return false;
}
Друг показал в качестве "запроса в бд для получения инфы о юзерах с целью минимизировать код"
−88
// готовим выборку
ВыборкаПоСчетам = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Счет" + ЧастьБаланса);
Пока ВыборкаПоСчетам.Следующий() Цикл
ВыборкаСбк1 = ВыборкаПоСчетам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + ЧастьБаланса + "1");
Пока ВыборкаСбк1.Следующий() Цикл
ВыборкаСбк2 = ВыборкаСбк1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + ЧастьБаланса + "2");
Пока ВыборкаСбк2.Следующий() Цикл
ВыборкаСбк3 = ВыборкаСбк2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + ЧастьБаланса + "3");
Пока ВыборкаСбк3.Следующий() Цикл
ВыборкаПоКоррСчетам = ВыборкаСбк3.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Счет" + КоррЧастьБаланса);
Пока ВыборкаПоКоррСчетам.Следующий() Цикл
ВыборкаКоррСбк1 = ВыборкаПоКоррСчетам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + КоррЧастьБаланса + "1");
Пока ВыборкаКоррСбк1.Следующий() Цикл
ВыборкаКоррСбк2 = ВыборкаКоррСбк1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + КоррЧастьБаланса + "2");
Пока ВыборкаКоррСбк2.Следующий() Цикл
ВыборкаКоррСбк3 = ВыборкаКоррСбк2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + КоррЧастьБаланса + "3");
Пока ВыборкаКоррСбк3.Следующий() Цикл
ВыборкаНалСчет = ВыборкаКоррСбк3.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "СчетКорректировок");
Пока ВыборкаНалСчет.Следующий() Цикл
ВыборкаНалСбк1 = ВыборкаНалСчет.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто1Корректировок");
Пока ВыборкаНалСбк1.Следующий() Цикл
ВыборкаНалСбк2 = ВыборкаНалСбк1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто2Корректировок");
Пока ВыборкаНалСбк2.Следующий() Цикл
ВыборкаНалСбк3 = ВыборкаНалСбк2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто3Корректировок");
Пока ВыборкаНалСбк3.Следующий() Цикл
ВыборкаСделок = ВыборкаНалСбк3.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Сделка");
Пока ВыборкаСделок.Следующий() Цикл
ВыборкаДанных = ВыборкаСделок.Выбрать();
Если ВыборкаДанных.Следующий() Тогда
// Пара строк кода
Для Сч = 1 По 3 Цикл
Если ТипЗнч(ВыборкаДанных["Субконто" + ЧастьБаланса + Сч]) = Тип("СправочникСсылка.СтатьиЗатрат") Тогда
// И тут еще пара строк кода
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла; // по сделкам
КонецЦикла; // по субконто3 корректировок
КонецЦикла; // по субконто2 корректировок
КонецЦикла; // по субконто1 корректировок
КонецЦикла; // по счетам корректировок
КонецЦикла; // по корр субконто3
КонецЦикла; // по корр субконто2
КонецЦикла; // по корр субконто1
КонецЦикла; // по корр счетам
КонецЦикла; // по субконто3
КонецЦикла; // по субконто2
КонецЦикла; // по субконто1
КонецЦикла; // по счетам
Готовим выборку!
+2
switch (button.Tag.ToString()) {
case "Ezp":
{
if (nowLayer.OpenedFiles.Count == 0)
{
nowLayer.OpenedFiles = new List<ExemplarFile> { new ExemplarFile("") };
}
if (nowLayer.OpenedFiles[0].EdinZemleps == null)
{
nowLayer.OpenedFiles[0].EdinZemleps = new List<EdinZemlep>();
}
var strName = ":ЕЗ" + (nowLayer.OpenedFiles[0].EdinZemleps.Count + 1);
nowLayer.OpenedFiles[0].EdinZemleps.Add(new EdinZemlep(strName) { Status = StatusEnum.Образуемый });
_ezpListTreeView.Add(new EzpTreeView { NameEzp = strName, ContourList = new List<ContourTreeView>(), ParcelList = new List<PartZuTreeView>(), IsEzpVisible = true, IsSelectedEzp = false } );
_dictionaryEzpTreeViewFile.Add(_ezpListTreeView[_ezpListTreeView.Count - 1], nowLayer.OpenedFiles[0]);
_dictionaryEzpTreeViewEdinZemlep.Add(_ezpListTreeView[_ezpListTreeView.Count - 1], nowLayer.OpenedFiles[0].EdinZemleps[nowLayer.OpenedFiles[0].EdinZemleps.Count - 1]);
break;
}
case "ContourEzp":
{
indexEz = TreeViewStackPanelMain.Children.IndexOf(((button.Parent as Grid).Parent as StackPanel).Parent as Grid) - _partZuListTreeView.Count;
var strName = (nowLayer.OpenedFiles[0].EdinZemleps[indexEz].CadNum != "" ? nowLayer.OpenedFiles[0].EdinZemleps[indexEz].CadNum : nowLayer.OpenedFiles[0].EdinZemleps[indexEz].LastName) + "(" + (nowLayer.OpenedFiles[0].EdinZemleps[indexEz].Contours.Count + 1) + ")";
nowLayer.OpenedFiles[0].EdinZemleps[indexEz].AddContour(new Contour(strName) { Status = StatusEnum.Образуемый });
if (_ezpListTreeView[indexEz].ContourList == null)
{
_ezpListTreeView[indexEz].ContourList = new List<ContourTreeView>();
}
strName = nowLayer.OpenedFiles[0].EdinZemleps[indexEz].Contours.Last().Name;
_ezpListTreeView[indexEz].ContourList.Add(new ContourTreeView { NameContour = strName, IsContourVisible = true, IsSelectedContour = false } );
for (var i = 0; i < _ezpListTreeView[indexEz].ContourList.Count; i++)
{
_ezpListTreeView[indexEz].ContourList[i].NameContour = nowLayer.OpenedFiles[0].EdinZemleps[indexEz].Contours[i].Name;
}
break;
}
case "ZuEzp":
{
indexEz = TreeViewStackPanelMain.Children.IndexOf(((button.Parent as Grid).Parent as StackPanel).Parent as Grid) - _partZuListTreeView.Count;
var strName = ":ЗУ" + (nowLayer.OpenedFiles[0].EdinZemleps[indexEz].Parcels.Count + 1);
if (_ezpListTreeView[indexEz].ParcelList == null)
{
_ezpListTreeView[indexEz].ParcelList = new List<PartZuTreeView>();
}
nowLayer.OpenedFiles[0].EdinZemleps[indexEz].Parcels.Add(new Parcel(strName) { Status = StatusEnum.Образуемый });
_ezpListTreeView[indexEz].ParcelList.Add(new PartZuTreeView { NamePartZu = strName, ContourList = new List<ContourTreeView>(), PartList = new List<PartTreeView>(), IsPartZuVisible = true, IsSelectedPartZu = false });
_dictionaryPartZuTreeViewFile.Add(_ezpListTreeView[indexEz].ParcelList[_ezpListTreeView[indexEz].ParcelList.Count - 1], nowLayer.OpenedFiles[0]);
_dictionaryPartZuTreeViewParcel.Add(_ezpListTreeView[indexEz].ParcelList[_ezpListTreeView[indexEz].ParcelList.Count - 1], nowLayer.OpenedFiles[0].EdinZemleps[indexEz].Parcels[nowLayer.OpenedFiles[0].EdinZemleps[indexEz].Parcels.Count - 1]);
break;
}
case "PartZuEzp":
{
indexEz = TreeViewStackPanelMain.Children.IndexOf(((((((button.Parent as Grid).Parent as StackPanel).Parent as Grid).Parent as StackPanel).Parent as Grid).Parent as StackPanel).Parent as Grid) - _partZuListTreeView.Count;
indexZu = ((((((button.Parent as Grid).Parent as StackPanel).Parent as Grid).Parent as StackPanel).Parent as Grid).Parent as StackPanel).Children.IndexOf((((((button.Parent as Grid).Parent as StackPanel).Parent as Grid).Parent as StackPanel).Parent as Grid));
var sbPrclName = nowLayer.OpenedFiles[0].EdinZemleps[indexEz].Parcels[indexZu].LastName + "/чзу" + (nowLayer.OpenedFiles[0].EdinZemleps[indexEz].Parcels[indexZu].Subparcels.Count + 1);
nowLayer.OpenedFiles[0].EdinZemleps[indexEz].Parcels[indexZu].Subparcels.Add(new Subparcel(sbPrclName) { Status = StatusEnum.Образуемый });
if (_ezpListTreeView[indexEz].ParcelList[indexZu].PartList == null)
{
_ezpListTreeView[indexEz].ParcelList[indexZu].PartList = new List<PartTreeView>();
}
_ezpListTreeView[indexEz].ParcelList[indexZu].PartList.Add(new PartTreeView { NamePart = sbPrclName, ContourList = new List<ContourTreeView>(), IsPartVisible = true, IsSelectedPart = _ezpListTreeView[indexEz].ParcelList[indexZu].IsSelectedPartZu });
_dictionaryPartTreeViewSubparcel.Add(_ezpListTreeView[indexEz].ParcelList[indexZu].PartList[_ezpListTreeView[indexEz].ParcelList[indexZu].PartList.Count - 1], nowLayer.OpenedFiles[0].EdinZemleps[indexEz].Parcels[indexZu].Subparcels[nowLayer.OpenedFiles[0].EdinZemleps[indexEz].Parcels[indexZu].Subparcels.Count - 1]);
break;
}
и это продолжается, продолжается и продолжается....
−94
Если СтрокаТаблицы.ЗакрытьДоговор = Истина Тогда
СтарыйЭлемент = Справочники.ДоговорыКонтрагентов.НайтиПоКоду(СтрокаТаблицы.Договор.Код).ПолучитьОбъект();
СтарыйЭлемент1 = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(СтрокаТаблицы.Договор.Наименование).ПолучитьОбъект();
Если СтарыйЭлемент.Наименование <> СтарыйЭлемент1.Наименование Тогда
СтарыйЭлемент = СтарыйЭлемент1;
Иначе
СтарыйЭлемент = СтарыйЭлемент;
КонецЕсли;
СтарыйЭлемент.мфоДатаЗакрытия = Дата;
Иначе
СтарыйЭлемент = Справочники.ДоговорыКонтрагентов.НайтиПоКоду(СтрокаТаблицы.Договор.Код).ПолучитьОбъект();
СтарыйЭлемент1 = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(СтрокаТаблицы.Договор.Наименование).ПолучитьОбъект();
Если СтарыйЭлемент.Наименование <> СтарыйЭлемент1.Наименование Тогда
СтарыйЭлемент = СтарыйЭлемент1;
Иначе
СтарыйЭлемент = СтарыйЭлемент;
КонецЕсли;
СтарыйЭлемент.мфоДатаЗакрытия = Дата("00010101");
КонецЕсли;
СтарыйЭлемент.Записать();
Крайне сильное колдунство :) Все те же аутсорсеры :)
−2
$film_id = $row["film_id"];
// $collections_result = mysql_query("SELECT title FROM films");
$collections_result = mysql_query("SELECT c.collection_name, l.film_id FROM collections AS c, films_collections AS l, films AS f WHERE f.film_id = $film_id");
while($coll_row = mysql_fetch_array($collections_result)) {
$col_arr[] = $coll_row["film_id"];
$heading = $coll_row["collection_name"];
}
// echo "<pre>";
// print_r($collections_row);
// echo "</pre>";
if (mysql_num_rows($collections_result)) {
echo '
<h2>'.$heading.'</h2>
<ul class="grid">
';
// $col_arr[] = $film_id;
// print_r($col_arr);
$collections_films_result = mysql_query("SELECT title, url, description FROM films WHERE film_id IN(".implode(",",$col_arr).")");
$collections_films_row = mysql_fetch_array($collections_films_result);
do {
if (iconv_strlen($collections_films_row["description"],'UTF-8')>95) {
$more_desc = mb_substr($collections_films_row["description"],0,95,'UTF-8').'...';
}
echo '
<li>
<a href="./seeing.php?id='.$collections_films_row["url"].'">
<img src="./oblojki/'.$collections_films_row["url"].'.jpg" >'.$collections_films_row["title"].'</a>
<small>'.$more_desc.'</small>
</li>
';
}
while($collections_films_row = mysql_fetch_array($collections_films_result));
}
+1
-- Few Scum
import Data.Char
import Text.Read
import Control.Applicative
import Data.Ratio
import Numeric
import Data.List
import Data.Maybe
data Token
=TLetter Char
|TNumf Rational
|TOp Char
|LBrace
|RBrace
deriving (Show, Eq)
data Expr
=Letter Char
|Numf Rational
|Op Char Expr Expr
|Diff Expr
instance Show Expr where
show (Letter c) = [c]
show (Op c el er) = '(' : show el ++ ')' :
c : '(' : show er ++ ")"
show (Numf v) = show $ toDouble v
show (Diff e) = '(' : show e ++ ")'"
toDouble r = fromRational r :: Double
readUnsignedRationalMaybe f = getParseResult $ parseValue f where
parseValue f = {- readSigned -} readFloat f :: [(Rational, String)]
getParseResult [(value, "")] = Just value
getParseResult _ = Nothing
-- Разбиваем строку на элементы, возаращает перевернутый список токенов
tokenize "" = Nothing
tokenize sourceExpressionString = tok [] sourceExpressionString where
tok [] (c:s)
| c == '-' = tok [TOp '-', TNumf 0] s
tok r@(LBrace:_) (c:s)
| c == '-' = tok (TOp '-':TNumf 0:r) s
tok r (c:s)
| c == '(' = tok (LBrace:r) s
| c == ')' = tok (RBrace:r) s
| isLetter c = tok (TLetter c:r) s
| isOperation c = tok (TOp c:r) s
| isNumber c = parseNumf r (c:s)
tok r "" = Just r
tok resultParsedTokens sourceExpressionString = Nothing
isOperation = (`elem` "+-*/")
isNumf c = isNumber c || c == '.'
parseNumf r s = maybeNumber >>= makeResult where
(numberString, tail) = span isNumf s
maybeNumber = readUnsignedRationalMaybe numberString--readMaybe numberString
makeResult number = tok (TNumf number:r) tail
-- Дерево выражений из списка токенов
parse reversedTokens = reversedTokens >>= makeTree where
priorityOps = ["+-","/*"]
subExpr = splitIntoOperationAndSubExpressions
splitIntoOperationAndSubExpressions reversedTokens =
id =<< find isJust (map (findOp reversedTokens [] 0) priorityOps)
findOp (LBrace:_) _ 0 _ = Nothing -- dont checked on left expression, probably can safety removed
findOp (RBrace:l) r b ops = findOp l (RBrace:r) (b+1) ops
findOp (LBrace:l) r b ops = findOp l (LBrace:r) (b-1) ops
findOp (TOp c:l) r 0 ops
| c `elem` ops = Just (c, l, reverse r)
| otherwise = findOp l (TOp c:r) 0 ops
findOp leftSubExpression [] b operationsForFind
| b > 0 = Nothing
findOp (c:l) r b ops = findOp l (c:r) b ops
findOp [] rightSubExpression braceAmount operationsForFind = Nothing
makeTree reversedTokens = mt reversedTokens $ subExpr reversedTokens
mt t@(RBrace:tt) Nothing
| last t == LBrace = mt (init tt) $ subExpr (init tt)
mt [TLetter v] Nothing = Just $ Letter v
mt [TNumf v] Nothing = Just $ Numf v
mt _ Nothing = Nothing
mt _ (Just (o, l, r)) = makeOperationExpression leftExpressionTree rightExpressionTree o where
leftExpressionTree = mt l $ subExpr l
rightExpressionTree = mt r $ subExpr r
makeOperationExpression = moe
moe Nothing _ _ = Nothing
moe _ Nothing _ = Nothing
moe (Just leftExpressionTree) (Just rightExpressionTree) operation = Just $ Op operation leftExpressionTree rightExpressionTree
-- Простейшее упрощение выражений
firstSimplify e = simplifyTreeHeightTimes <$> e where
stepSimplify = fs
fs (Op '*' e (Numf 1)) = e
fs (Op '*' (Numf 1) e) = e
fs (Op '+' e (Numf 0)) = e
fs (Op '+' (Numf 0) e) = e
fs (Op '/' e (Numf 1)) = e
fs (Op '-' e (Numf 0)) = e
fs (Op '*' (Numf 0) _) = Numf 0
fs (Op '*' _ (Numf 0)) = Numf 0
fs (Op '/' (Numf 0) _) = Numf 0
fs (Op '/' (Letter l) (Letter r))
| l == r = Numf 1
fs (Op '-' (Letter l) (Letter r))
Новая Специальная Олимпиада объявляется открытой.
https://ideone.com/Bottp0
Реализовать поиск производной по выражению на любом языке. У кого получится компактнее, правильнее и больше функционала, тот и победил. Заявлять кандидата в победители (код и его автора) можно несколько раз если код улучшил или написал на другом языке. Призов, кроме почета и приятного времяпрепровождения, - не будет
Если кто-то что-нибудь поломает, то я буду очень рад.
Пока упрощение не работает на полную катушку и из функций производных только +-*/
Мой друг обещает ещё версию на крестах подогнать.