- 1
$revutxt = ($result_good['description']!='') ? $result_good['description'] : '';
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+28.9
$revutxt = ($result_good['description']!='') ? $result_good['description'] : '';
вот где безопасность! вот где проверка верных значений переменных!)
+42.9
extract($GLOBALS);
Анекдот в одну строчку
+6.1
do {
XLoop:
XNextEvent(dpy,&event);
switch(event.type) {
case ResizeRequest:
if (event.xresizerequest.window!=win_main)
goto XLoop;
resize_main:
xswa.event_mask&= ~ResizeRedirectMask;
XChangeWindowAttributes(dpy,win_main,CWEventMask, &xswa);
XSync(dpy,0); /* very important, otherwise we loop endlessly ! */
XResizeWindow(dpy, win_main,event.xresizerequest.width,event.xresizerequest.height);
XSync(dpy,0); /* very important, otherwise we loop endlessly ! */
xswa.event_mask|= ResizeRedirectMask;
XChangeWindowAttributes(dpy,win_main,CWEventMask, &xswa);
resize=1;
XSync(dpy,0); /* another one, just in case... */
goto redisplay;
case Expose:
if (event.xexpose.count|moving_button1|vmoving_button)
goto XLoop;
.....// и дальше такой же хрени типа нарисовать и goto XLoop; :)
Однако под X11 пишут и так:
+16.6
$temp69 = new dbQuery($sql69, $conn->connId) or die(mysql_error());
$i=""; while($i<=5) { $res69=$temp69->getArray(); $i++; }
$sql69="select * from dj_config";
$temp69= new dbQuery($sql69, $conn->connId) or die(mysql_error());
$i="";
while($i<=5){
$res69=$temp69->getArray();
$i++;
}
оригинал: http://blog.sjinks.org.ua/humour/76-programmers-russian-indian-chinese-canadian/
−11.9
void safecpy(char *str1, char *str2)
{
strncpy(str1, str2, strlen(str1));
str1[strlen[str1]] = 0;
}
...
void safecpy(char *str1, char *str2)
{
strncpy(str1, str2, sizeof(str1));
str1[sizeof(str1)] = 0;
}
Две примера функций \"безопасного\" копирования строк :-)
−58.5
//Вознашу хвалу тебе, о великий индуский бог программинга! Как ни странно, работает, но надо переписать на досуге.
$city_xml = $CityArray->GetXml("CityList");
foreach($city_xml as $tmp_array){
if(!is_string($tmp_array) && $tmp_array[0] != "" && $tmp_array[0] != "Success" ){
foreach($tmp_array as $second_array){
$ixml = new xml();
$ixml->Insert($second_array);
foreach($ixml as $country_array){
if(!is_string($country_array) && $country_array[0] != "" && $country_array[0] != "Success" ){
foreach($country_array as $rxml){
if(!is_string($rxml)){
foreach($rxml as $axml){
if(!is_string($axml) && $axml[0] && $axml[0] != "Position"){
foreach($axml as $bxml){
foreach($bxml as $cxml){
if(!is_string($cxml) && is_array($cxml) && $cxml["Name"]){
$cities[] = $cxml;
}
}
}
}
}
}
}
}
}
}
}
}
return $cities;
Парсинг xml
−62.7
if ( strchr ( $_POST["ship$i"], "+") || strchr($_POST["ship$i"], " ") || strchr($_POST["ship$i"], ",") || strchr($_POST["ship$i"], ".") || strchr($_POST["ship$i"], "-") || strchr($_POST["ship$i"], "_") || strchr($_POST["ship$i"], ";") || strchr($_POST["ship$i"], ":") ) {
message("You got owned by >>The_Revenge Anticheat Systems<<", "Anticheat");
}
if ( !strchr ( $_POST["ship$i"], "+") && !strchr($_POST["ship$i"], " ") && !strchr($_POST["ship$i"], ",") && !strchr($_POST["ship$i"], ".") && !strchr($_POST["ship$i"], "-") && !strchr($_POST["ship$i"], "_") && !strchr($_POST["ship$i"], ";") && !strchr($_POST["ship$i"], ":")) {
// код
}
Немец предложил такое решение для проверки, что в строке ship$i именно положительное целое число и ни что иное.
В другом месте попадается аналогичный момент, только там после каждого strchr для каждого спецсимвола идет 10 строк одного и того же кода с двумя запросами к БД и выдачей бана юзеру...
Проект XNova (ogame-like)
−32.7
public void updateAmountValues(List<TransactionResultItem> transactionResultItems) {
for (TransactionResultItem transaction : transactionResultItems) {
Account account = getAccountById(transaction.getAccountId());
if ((transaction.getMainTransaction()
&& ! transaction.getTransactionTypeId().equals(4)
&& ! transaction.getTransactionTypeId().equals(5)
&& ! transaction.getTransactionTypeId().equals(6))
||
(! transaction.getMainTransaction() &&
(transaction.getTransactionTypeId().equals(5) &&
((account.getAccountTypeId().equals(AccountType.INCOME_TYPE_ID) ||
account.getAccountTypeId().equals(AccountType.OTHER_INCOME_TYPE_ID)) &&
transaction.getAmount() > 0)
|| (transaction.getAccountId().equals(getSalesTaxPayableAccountId()) && transaction.getAmount() > 0)
|| ((account.getAccountTypeId().equals(AccountType.EXPENSE_TYPE_ID) ||
account.getAccountTypeId().equals(AccountType.OTHER_EXPENSE_TYPE_ID)) && transaction.getAmount() < 0))
|| (transaction.getTransactionTypeId().equals(1) &&
(account.getAccountTypeId().equals(AccountType.INCOME_TYPE_ID) ||
account.getAccountTypeId().equals(AccountType.OTHER_INCOME_TYPE_ID)) &&
transaction.getAmount() < 0)
|| (transaction.getTransactionTypeId().equals(2) &&
(account.getAccountTypeId().equals(AccountType.INCOME_TYPE_ID) ||
account.getAccountTypeId().equals(AccountType.OTHER_INCOME_TYPE_ID)) &&
transaction.getAmount() > 0)
)) {
Double amount = transaction.getAmount();
transaction.setAmount(-amount);
}
}
}
Потрясающий по понятности код. Вызывался несколько раз в одном и том же методе.
0
(let ((actions (make-list 100 :initial-element (make-list 100 :initial-element (make-list 1000 :initial-element most-negative-fixnum #| your action reward |# )))))
(labels ((find-best-action (life)
(if (numberp life) life (apply #'max (mapcar #'find-best-action life)))))
(print (find-best-action actions)))) ;; the best your life outcome
+1
{-# LANGUAGE OverloadedStrings #-}
import qualified Data.Text.Lazy.IO as LIO
import GHC.IO.StdHandles
import Text.Regex.TDFA
import qualified Text.Regex.TDFA.Text.Lazy as RL
import Data.Array
import qualified Data.Text.Lazy as TL
import System.Environment
import System.Exit
import System.IO
import qualified Language.C.Syntax.Constants as CC
import Data.Char
printMatch t matches i =
let (offset, len) = matches ! i in
let offset' = fromIntegral offset in
let len' = fromIntegral len in
LIO.putStr $ TL.take len' $ TL.drop offset' t
printHead t matches =
let (offset, len) = matches ! 0 in
let offset' = fromIntegral offset in
let len' = fromIntegral len in
LIO.putStr $ TL.take offset' t
printTrail t matches =
let (offset, len) = matches ! 0 in
let offset' = fromIntegral offset in
let len' = fromIntegral len in
LIO.putStr $ TL.drop (offset' + len') t
need_capture_trail acc ".*" = (False, reverse acc)
need_capture_trail acc [] = (True, reverse acc)
need_capture_trail acc (c : rest) = need_capture_trail (c : acc) rest
getRE :: [String] -> Either String (RL.Regex, Bool, String)
getRE args =
case args of
(re_str : repl_str : _) ->
let (trail_needed, re_str') = need_capture_trail [] re_str in
let re_text = TL.pack $ CC.unescapeString re_str' in
case RL.compile defaultCompOpt defaultExecOpt re_text of
Right re ->
Right (re, trail_needed, CC.unescapeString repl_str)
Left err ->
Left err
_ ->
Left "Regexp expected"
-- replacement :: TL.Text -> Int -> _ -> String -> IO ()
replacement _ _ _ [] = return ()
replacement t n_matches matches (c : rest)
| ord c <= n_matches = do
printMatch t matches (ord c)
replacement t n_matches matches rest
| True = do
putChar c
replacement t n_matches matches rest
exitError :: String -> IO ()
exitError msg = do
hPutStrLn stderr msg
exitWith (ExitFailure 1)
main :: IO ()
main = do
args <- getArgs
case getRE args of
Right (re, trail_needed, repl) -> do
t <- LIO.hGetContents stdin
case RL.execute re t of
Right (Just matches) ->
do
let n_matches = snd $ bounds matches
-- print matches
printHead t matches
replacement t n_matches matches repl
if trail_needed then
printTrail t matches
else
return ()
Right Nothing -> do
exitError "Pattern not found"
Left err -> do
exitError err
Left err -> do
exitError err
Текст UNIX-way утилиты fed
Капча: p2ux