- 1
- 2
- 3
- 4
- 5
$sql=mysql_query("SELECT id FROM table");
$id=mysql_num_rows($sql)+1;
$qry=mysql_query("INSERT INTO table(id, .....) VALUES ('$id','.....')")
or die (mysql_error());
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+179
$sql=mysql_query("SELECT id FROM table");
$id=mysql_num_rows($sql)+1;
$qry=mysql_query("INSERT INTO table(id, .....) VALUES ('$id','.....')")
or die (mysql_error());
Осуществление auto_increment-а!
Угадайте, что будет если кто то удалить одну строку из таблицу?
+157
<?
@$ok=$HTTP_POST_VARS["ok"];
@$user=$HTTP_POST_VARS["user"];
@$pwd=$HTTP_POST_VARS["pwd];
if(!isset($ok))
echo "<form action=.$2.php. method=POST>"
."Name<input type=text name user><br>"
."Password<input type=password name=pwd><br>"
."<input type=submit name=ok value=Войти>"
."</form>";
else
{
if(($user="Demo")&&($pwd=="Demo"))
echo "Wellcome";
else
echo "Access Blocked";
}
?>
Говорят, что это не говнокод.
+121
// то проверяем его куки
// вдруг там есть логин и пароль к нашему скрипту
if (isset($_COOKIE['login']) && isset($_COOKIE['password'])) {
// если же такие имеются
// то пробуем авторизовать пользователя по этим логину и паролю
$login = mysql_real_escape_string($_COOKIE['login']);
$password = mysql_real_escape_string($_COOKIE['password']);
// и по аналогии с авторизацией через форму:
// делаем запрос к БД
// и ищем юзера с таким логином и паролем
$query = "SELECT `id`
FROM `users`
WHERE `login`='{$login}' AND `password`='{$password}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
// если такой пользователь нашелся
if (mysql_num_rows($sql) == 1) {
// то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя)
$row = mysql_fetch_assoc($sql);
$_SESSION['user_id'] = $row['id'];
авторитизация из кук ну сколько не говори не храни в куках пароли и логины нет найдется один говонокодер которому все не почем и учит детей плохому
+160
m_lActiveTab = GetCurSel();
for (int i = 0; i < GetItemCount(); i++)
m_cItemSelected[m_lActiveTab] = false;
m_cItemSelected[m_lActiveTab] = true;
Вот так говнокодят в крупных проектах
+167
...
chmod($file, 0777);
unlink($file);
...
На просторах интернета можно найти функцию для рекурсивного удаления папки со всем содержимым вот с таким фрагментом.
+129
Author: decker <decker@personal-army> 2010-06-19 05:39:42
Committer: decker <decker@personal-army> 2010-06-19 05:39:42
fix potential race in reservation id generation
@@ -97,7 +98,7 @@ public class VmInstances extends AbstractNamedRegistry<VmInstance> {
do {
MessageDigest digest = Hashes.Digest.MD5.get();
digest.reset();
- digest.update( Long.toString( rsvId + launchIndex + System.currentTimeMillis() ).getBytes() );
+ digest.update( Long.toString( rsvId + launchIndex + System.nanoTime( ) ).getBytes() );
Adler32 hash = new Adler32();
hash.reset();
Вот так суровые калифорнийцы сурово чинят race...
+131
#include <stdio.h>
void factorization(int num, int show) {
int num1 = num;
int n = 2;
while ( n*n <= num1 ) {
if ( num%n == 0 ) {
num = num / n;
if ( show )
printf( "%d\n", n );
} else {
n ++;
}
}
}
int main() {
int i = 0;
while ( i < 1000 ) {
factorization(999999, 0);
i ++;
}
return 0;
}
Опубликовано в одной из ссылок с http://habrahabr.ru/blogs/ruby/48952/ (если надо, точную ссылку найду позже).
Код раскладывает число на простые множители тупым перебором делителей. Мало того, что этот код медленный, так он иногда последний множитель пропускает. Одновременно и ошибка, и скорость исправляются так:
- while ( n*n <= num1 ) {
+ while ( n <= num ) {
Неожиданно, правда?
+135
0 DIM P(4): DIM R(4)
10 DATA 173, 48, 192, 136, 208, 5, 206, 1, 3, 240, 9, 202, 208, 245, 174, 0, 3, 76, 2, 3, 96,,0
20 FOR X=770 TO 792
30 READ Y
40 POKE X, Y
50 NEXT X
60 DATA 192, 152, 144, 128, 114
70 FOR I=0 TO 4
80 READ P(I)
90 NEXT I
100 DATA 255, 128, 64, 64, 128
FOR I=0 TO 4
READ R(I)
NEXT I
FOR I=0 TO 4
POKE 768, P(I)
POKE 769, R(I)
CALL 770
NEXT I
END
Не совсем ГК, зато выглядит страшно. Шарманка для ПЭВМ «Агат-7». Вторая строка — машинные коды. Выглядит как обфуска. Вот листинг:
.ORG 768
L_768: .BYTE 0 ; НОТА
L_769: .BYTE 0 ; ДЛИТЕЛЬНОСТЬ
L_770: LDA $C030
L_773: DEY
BNE L_781
DEC L_769
BEQ L_790
L_781: DEX
BNE L_773
LDX L_768
JMP L_770
L_790: RTS
.BYTE $FF
.BYTE 0
+129
for i in 14 15 27 29 38; do # make a sed string to replace special characters
hexval=$(printf \\\\x%02x $i)
sedstr=$sedstr"s/'$hexval/chr($i)||'/g;s/$hexval'/'||chr($i)/g;s/$hexval/'||chr($i)||'/g;"
done
cat <<EOF | sqlplus -S $DB_LOGIN | sed $sedstr | awk -v dbdir=db/data '{print > dbdir"/"$3".sql"}'
$SPINIT
BEGIN
FOR i IN (SELECT * FROM USER_OBJECTS WHERE OBJECT_TYPE='TABLE' ORDER BY OBJECT_NAME) LOOP
DECLARE
all_cols VARCHAR2(32767) := '';
TYPE data_cur_type IS REF CURSOR;
data_cur data_cur_type;
ins_str VARCHAR2(32767);
BEGIN
FOR j IN (SELECT DISTINCT(COLUMN_NAME) FROM USER_TAB_COLUMNS
WHERE TABLE_NAME=i.OBJECT_NAME AND
DATA_TYPE IN ('VARCHAR2', 'CHAR', 'NUMBER', 'DATE')
ORDER BY COLUMN_NAME) LOOP
all_cols := all_cols || j.column_name || ',';
END LOOP;
IF all_cols is null THEN GOTO end_of_loop; END IF;
all_cols := RTRIM(all_cols,',');
OPEN data_cur FOR 'select ' ||
'''INSERT INTO ' || i.object_name || ' (' || all_cols || ') VALUES (' || '''''''||' || replace(all_cols, ',', '||'''''',''''''||') || '||'''''');''' ||
' from ' || i.object_name || ' order by ' || all_cols;
LOOP
FETCH data_cur INTO ins_str;
EXIT WHEN data_cur%NOTFOUND;
dbms_output.put_line(ins_str);
END LOOP;
CLOSE data_cur;
END;
<<end_of_loop>> NULL;
END LOOP;
END;
/
EOF
Проблеме экранирования посвящается.
На стыке технологий: экспорт данных из БД в виде insert-ов. Там еще есть awk-шный код по разбору всего, что получилось, но он не такой ужасный.
Автор я, если чо:)
−126
.........................................
if [[ "$rez" = "0%" ]]
then
let "i = i + 1"
else
#Ещё чуток индийского кода:)
let "i = i + 0"
fi
done
.........................................