Комментарии 11
Надо было в промпте дать причину такой просьбы. Например, "Код нужен для демонстрации студентам всех случаев плохого кода".
Я попросил его:
"Перепиши код несколько раз, каждый раз делая его хуже."
И знаете, получилось сильно хуже! https://chat.deepseek.com/share/amvp9rzoe8133ebt2z
Кстати, промпт "перепиши несколько раз" - это хорошее решение. Вот тут я попросил несколько раз переписать анекдот: https://chat.deepseek.com/share/r1cam4uycl641xz09p Интересно что третья версия оказалась смешнее, чем четвертая.
Плохой код это не так плохо как просто тупость. Вот студентам образец. Попробуйте сделать таблицу в псевдокоде так чтобы разделение на ячейки было ровным. Я два часа УЧИЛ Grok что нужно считать символы в каждой ячейке и учитывать максимальный в столбце. Лучше этого он вообще не смог родить
🤣
| Day | Adults (Shed) | Juveniles (Lake) | Total | Notes |
+-----+---------------+------------------+-------+-------------------------------------+
| 0 | 40 | 0 | 40 | Winter start |
| 30 | 30 | 0 | 30 | Egg-laying |
| 60 | 26 | 75 | 101 | Hatching peak, stress mortality |
| 90 | 29 | 41 | 70 | Juvenile transition to lake |
| 120 | 30 | 59 | 89 | Spring stabilization |
| 150 | 30 | 60 | 90 | Summer adaptation |
| 180 | 30 | 60 | 90 | End-summer plateau |
+-----+---------------+------------------+-------+-------------------------------------+
Довольно трудно получить от LLM совсем плохой код. С патчами, срочно, разными людьми и забив на все принципы разработки.
<?php session_start(); ob_start(); $db = new mysqli("db","u","p","shop"); $total = 0;
// FIX: CSRF токен (ИБ ругались на сканер)
if(empty($_SESSION['csrf'])) $_SESSION['csrf'] = bin2hex(random_bytes(16));
?>
<script>let sum = 0; document.cookie="discount_sum=0";</script>
<form method="post" id="cart_form">
<input type="hidden" name="csrf" value="<?= $_SESSION['csrf'] ?>">
<?php $res = $db->query("SELECT id, price, name FROM catalog"); while($row = $res->fetch_assoc()): ?>
<?php
$v = "item_".$row['id'];
// FIX: Принудительный каст в int, чтобы в $$v не прокинули массив (убивало сессию)
$$v = (int)($_POST[$v] ?? $_SESSION[$v] ?? 0);
if($$v) {
$_SESSION[$v] = 1;
$total += (float)$row['price'];
}
?>
<div onclick="document.getElementById('<?=$v?>').value=1; document.getElementById('cart_form').submit()">
<!-- FIX: XSS. Раньше можно было в базу записать товар <script>alert(1)</script> -->
<?= htmlspecialchars($row['name'], ENT_QUOTES) ?>
<script>
if(<?= $$v ?>) {
sum += <?= (float)$row['price'] ?>;
document.write("<span>[V]</span>");
document.cookie = "discount_sum=" + (sum * 0.9);
}
</script>
<input type="hidden" name="<?= $v ?>" id="<?= $v ?>" value="0">
</div>
<?php endwhile; ?>
<button name="checkout" value="1">Оформить</button></form>
<?php
if(isset($_POST['checkout']) && $total > 0) {
// FIX: Проверка токена
if(empty($_POST['csrf']) || $_POST['csrf'] !== $_SESSION['csrf']) die("Bad Request");
// FIX: SQLi и подмена цены.
// Куке всё ещё доверяем, но кастим во float и зажимаем между 0 и суммой без скидки.
// Хакер купит за 0 руб, но хотя бы не выведет баланс в минус.
$client_price = floatval($_COOKIE['discount_sum'] ?? $total);
$final_price = max(0, min($client_price, $total));
// FIX: Перешли на prepared statements, потому что статический анализатор блокировал CI/CD
$stmt = $db->prepare("INSERT INTO orders (val) VALUES (?)");
$stmt->bind_param("d", $final_price);
$stmt->execute();
session_unset();
echo "<script>alert('Ок'); window.location='?';</script>";
}
$html = ob_get_clean();
echo str_replace("[V]", "<b style='color:green'>В корзине</b>", $html);
?>
Всё должно работать и даже почти без уязвимостей. Удачи в тестировании и доработках.
У автора стиль 2010 года: самодельный роутинг, но уже есть слои. У меня стиль на 10 лет старше.
Заголовок звучит, как начало анекдота: "Я попросил ИИ написать максимально ПЛОХОЙ код, в результате WordPress был ускорен в десять раз".
Вот кусок кода из 2000г.:
<html>
<head>
<title>SQL</title>
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="stylesheet" type="text/css" href="style.css">
<script language="JavaScript" src="lib.js"></script>
<script language="JavaScript" src="move.js"></script>
<script language="JavaScript" src="calc.js"></script>
</head>
<body onLoad="create_object_array();init()">
<form action="gak_sql.php" method="get">
<center><b>
<?php
//require_once("dump.php");
require("class.mysql.php");
require_once("confdb.php");
if(!isset($lim) || (!is_numeric($lim))) $lim=30;
$ch2="";
$ch3="";
$numeric="";
if(@$num!="") {$ch2=" checked"; $numeric=1;}
if(@$help!="") {$ch3=" checked";}
//dump($_GET);
if(@$action3) {
$fl=file("sqlcom.inc");
$fl[]="\n".$c1."::".$s1;
$fl=implode("",$fl);
$hndl=fopen("sqlcom.inc","w");
fwrite ($hndl,$fl);
fclose($hndl);
}
function callback($ms)
{
return "<font color=\"blue\">".strtoupper($ms[1])."</font>";
}
//===========================================================
function toupsql($ms)
{
return strtoupper($ms[1]);
}
//===========================================================
function table($h,$clcol,$num=false)
{
global $sql,$db;
static $sta=0;
$sta++;
$sql2="";
$len=strlen($sql);
if($db->in_sql!="") {$sql2=eregi_replace("\\{[^}]*\\}","<font color=\"#B400B4\">".htmlspecialchars($db->in)."</font>",$sql)."<hr>";}
$str="/\b(SELECT|FROM|WHERE|LIMIT|ORDER|GROUP|HAVING|MAX|MIN|AVG|COUNT|BY|DISTINCT|IN|BETWEEN|NOT|OR|AND)\b/i";
$sql3=ereg_replace("\r?\n"," ",$sql);
$sql3=ereg_replace(" {2,}"," ",$sql3);
$sql3=str_replace("'","\'",$sql3);
$sql3=str_replace("\"","\'",$sql3);
$sql3=ereg_replace("(<)([^>])","\\1 \\2",$sql3);
$sql3=preg_replace_callback($str, "toupsql", $sql3);
$sql=htmlspecialchars($sql);
$sql=preg_replace_callback($str, "callback", $sql);
if($len>100) {$sql="<font size=\"1\">".$sql."</font>";}
$sql2=preg_replace_callback($str, "callback", $sql2);
echo "<div class=\"$clcol\"><center><hr>
<div class=\"gr\" onDblClick=\"openPopupWin('$sql3')\">$sql<hr>$sql2</div>\n";
if($db->mysql_error) echo "<div class=\"sred\"><center>".$db->mysql_error."</center></div><hr>\n";
if(!is_array($h)) {
if(empty($h)) echo "<div class=\"sred\"><center>No record!</center></div><hr>\n";
else echo $h;
echo "</center></div>\n";
return;}
$cnt=reset($h);
$cnt1=count($cnt);
$procent=intval(100/$cnt1);
echo "<table border=\"0\" width=\"100%\" cellpadding=\"1\" cellspacing=\"1\">";
echo "<tr class=\"tdbs\">";
if($num) echo "<td width=\"1%\" align=\"center\">№</td>";
foreach($cnt as $i=>$v) {echo "<td width=\"$procent%\" align=\"center\">$i</td>\n";}
echo "</tr>";
foreach($h as $k=>$v) {
//$tr=@$fg ? "#9999f0" : "#8888e0" ;
//$fg=@$fg ? 0 : 1 ;
//echo "<tr bgcolor='$tr'>\n";
$tr=@$fg ? "tr1" : "tr2" ;
$fg=@$fg ? 0 : 1 ;
echo "<tr class=\"$tr\">\n";
if($num) echo "\t<td width=\"1%\" align=\"center\" class=\"tdb\">".($k+1)."</td>\n";
foreach($v as $kl=>$vl){
if(is_numeric($vl)) echo "\t<td align=\"center\" onClick=\"tn(this.innerHTML)\">$vl</td>\n";
else echo "\t<td align=\"center\" onClick=\"ts(this.innerHTML)\">$vl</td>\n";
}
echo "</tr>\n";
}
echo "</table>";
echo "</center><hr></div>";
}
//===============================================================
Мы должны написать максимально плохой код на PHP для интернет-магазина. Задача явно шуточная
Как забавный вывод :)
Для максимально плохого кода слишком много комментариев в нем)

Я попросил ИИ написать максимально ПЛОХОЙ код