В то время как все пытаются научить ИИ писать такой хороший код, чтобы он заменил всех программистов, я решил попросить его сделать прямо противоположную задачу - написать максимально плохой код. Мой промпт звучал так:
В качестве ИИ я использовал DeepSeek. Разумеется, в режиме рассуждения - ведь чтобы написать максимально плохой код, мне понадобится вся интеллектуальная мощность искусственного интеллекта. Почему плохой код должен быть именно на PHP, я думаю, объяснять не надо.
Итак, сначала рассуждения ИИ:
А теперь посмотрим код:
<?php // ===================================================== // MEGA PLOHOY INTERNET MAGAZIN // VERSIYA 1.0 (BETA) // AVTOR: NEIZVESTNY GENIY // ===================================================== // VKLUCHAEM VSE OSHIBKI NA EKRAN - TAK NADEZHNEE error_reporting(E_ALL); ini_set('display_errors', 1); // PODKLUCHAEMSYA K BAZE DANNYKH (BEZ PROVEROK) mysql_connect('localhost', 'root', ''); mysql_select_db('shop'); // SOZDAEM TABLITSY, ESLI IKH NET (S POMOSHYU ZAPROSA) mysql_query("CREATE TABLE IF NOT EXISTS products ( id INT AUTO_INCREMENT PRIMARY KEY, name TEXT, price TEXT, image TEXT, descr TEXT )"); mysql_query("CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, login TEXT, password TEXT, email TEXT, is_admin INT )"); mysql_query("CREATE TABLE IF NOT EXISTS orders ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT, products TEXT, total TEXT, date DATETIME )"); // VSTAVIM ADMINA, ESLI EGO NET (PAROL' - ADMIN) $res = mysql_query("SELECT * FROM users WHERE login = 'admin'"); if (mysql_num_rows($res) == 0) { mysql_query("INSERT INTO users (login, password, email, is_admin) VALUES ('admin', 'admin', 'admin@localhost', 1)"); } // GLAVNAYA LOGIKA: POLUCHAEM DEYSTVIE IZ GET ILI POST $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'catalog'; // SEANSU NADO VKLYUCHIT' DLYA KORZINY session_start(); // EKSTRENNO SOZDAEM PEREMENNYE IZ POST - UDOBNO! if ($_POST) extract($_POST); // OBRABOTCHIK DEYSTVII switch ($action) { case 'catalog': showCatalog(); break; case 'product': showProduct(); break; case 'cart': showCart(); break; case 'add_to_cart': addToCart(); break; case 'remove_from_cart': removeFromCart(); break; case 'checkout': checkout(); break; case 'admin': adminPanel(); break; case 'add_product': addProduct(); break; case 'delete_product': deleteProduct(); break; case 'login': login(); break; case 'logout': logout(); break; case 'register': register(); break; default: showCatalog(); } // FUNKTSII function showCatalog() { // POLUCHAEM VSE TOVARY IZ BAZY $res = mysql_query("SELECT * FROM products"); echo "<h1>KATALOG TOVAROV</h1>"; echo "<a href='?action=cart'>Korzina</a> | <a href='?action=admin'>Admin panel</a> | <a href='?action=login'>Login</a><br><br>"; while ($row = mysql_fetch_assoc($res)) { // VYVODIM TOVAR S SSYLKOY NA PODROBNEE echo "<div style='border:1px solid #ccc; margin:5px; padding:5px;'>"; echo "<h3>" . $row['name'] . "</h3>"; echo "<p>Cena: " . $row['price'] . " rub.</p>"; if ($row['image']) echo "<img src='uploads/" . $row['image'] . "' width='100'><br>"; echo "<a href='?action=product&id=" . $row['id'] . "'>Podrobnee</a> | "; echo "<a href='?action=add_to_cart&id=" . $row['id'] . "'>V korzinu</a>"; echo "</div>"; } } function showProduct() { $id = $_GET['id']; // OPASNYY ZAPROS BEZ EKRANIROVANIYA $res = mysql_query("SELECT * FROM products WHERE id = $id"); $row = mysql_fetch_assoc($res); if (!$row) { echo "Tovar ne nayden!"; return; } echo "<h1>" . $row['name'] . "</h1>"; echo "<p>Cena: " . $row['price'] . "</p>"; echo "<p>" . $row['descr'] . "</p>"; if ($row['image']) echo "<img src='uploads/" . $row['image'] . "'><br>"; echo "<a href='?action=add_to_cart&id=" . $row['id'] . "'>Dobavit' v korzinu</a><br>"; echo "<a href='?action=catalog'>Nazad v katalog</a>"; } function addToCart() { $id = $_GET['id']; if (!isset($_SESSION['cart'])) $_SESSION['cart'] = array(); // PROVERIM, CHTO TAKOY Tovar EST' $res = mysql_query("SELECT * FROM products WHERE id = $id"); if (mysql_num_rows($res) > 0) { $_SESSION['cart'][$id] = isset($_SESSION['cart'][$id]) ? $_SESSION['cart'][$id] + 1 : 1; } header("Location: ?action=cart"); exit; } function removeFromCart() { $id = $_GET['id']; unset($_SESSION['cart'][$id]); header("Location: ?action=cart"); exit; } function showCart() { echo "<h1>KORZINA</h1>"; if (empty($_SESSION['cart'])) { echo "Korzina pusta."; echo "<br><a href='?action=catalog'>V katalog</a>"; return; } $total = 0; foreach ($_SESSION['cart'] as $id => $qty) { $res = mysql_query("SELECT * FROM products WHERE id = $id"); $row = mysql_fetch_assoc($res); if (!$row) continue; $subtotal = $row['price'] * $qty; $total += $subtotal; echo "<div>"; echo $row['name'] . " x $qty = $subtotal rub. "; echo "<a href='?action=remove_from_cart&id=$id'>Udalit'</a>"; echo "</div>"; } echo "<hr><b>ITOGO: $total rub.</b><br>"; echo "<a href='?action=catalog'>Prodolzhit' pokupki</a> | "; if (isset($_SESSION['user_id'])) { echo "<a href='?action=checkout'>Oformit' zakaz</a>"; } else { echo "<a href='?action=login'>Voyti dlya oformleniya</a>"; } } function checkout() { if (!isset($_SESSION['user_id'])) { header("Location: ?action=login"); exit; } if (empty($_SESSION['cart'])) { echo "Korzina pusta."; return; } // SOBIRAEM DANNye O ZAKAZE $user_id = $_SESSION['user_id']; $products = serialize($_SESSION['cart']); $total = 0; foreach ($_SESSION['cart'] as $id => $qty) { $res = mysql_query("SELECT * FROM products WHERE id = $id"); $row = mysql_fetch_assoc($res); $total += $row['price'] * $qty; } $date = date('Y-m-d H:i:s'); mysql_query("INSERT INTO orders (user_id, products, total, date) VALUES ($user_id, '$products', $total, '$date')"); // OCHIShAEM KORZINU $_SESSION['cart'] = array(); echo "Zakaz oformlen! Spasibo za pokupku!"; echo "<br><a href='?action=catalog'>Na glavnuyu</a>"; // OTPRAVLYaEM PIS'MO (ESLI EST' ADRES) $res = mysql_query("SELECT email FROM users WHERE id = $user_id"); $u = mysql_fetch_assoc($res); if ($u['email']) { mail($u['email'], "Zakaz oformlen", "Vash zakaz prinyat. Obshchaya summa: $total rub."); } } function adminPanel() { // PROVERIM PRAVA (ADMIN? ESLI NET, TO PUST' VOYDET) if (!isset($_SESSION['is_admin']) || $_SESSION['is_admin'] != 1) { // POPROBUEM VOYTI KAK ADMIN (DLYA UDOBSTVA) echo "<h2>Vkhod dlya administratora</h2>"; echo "<form method='post' action='?action=login'>"; echo "Login: <input name='login'><br>"; echo "Password: <input type='password' name='pass'><br>"; echo "<input type='submit' value='Voyti'>"; echo "</form>"; return; } // ADMIN PANEL' echo "<h1>ADMIN PANEL'</h1>"; echo "<a href='?action=catalog'>Katalog</a> | <a href='?action=logout'>Logout</a><br><br>"; // SPISOK TOVAROV S SSYLKAMI NA UDALENIE $res = mysql_query("SELECT * FROM products"); echo "<table border=1>"; echo "<tr><th>ID</th><th>Nazvanie</th><th>Cena</th><th>Deystvie</th></tr>"; while ($row = mysql_fetch_assoc($res)) { echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['name'] . "</td>"; echo "<td>" . $row['price'] . "</td>"; echo "<td><a href='?action=delete_product&id=" . $row['id'] . "' onclick='return confirm(\"Udalit?\")'>Udalit'</a></td>"; echo "</tr>"; } echo "</table>"; // FORMA DOBAVLENIYa TOVARA echo "<h2>Dobavit' tovar</h2>"; echo "<form method='post' action='?action=add_product' enctype='multipart/form-data'>"; echo "Nazvanie: <input name='name'><br>"; echo "Cena: <input name='price'><br>"; echo "Opisanie: <textarea name='descr'></textarea><br>"; echo "Kartinka: <input type='file' name='image'><br>"; echo "<input type='submit' value='Dobavit'>"; echo "</form>"; } function addProduct() { // PROVERKA ADMINA (OPYAT') if (!isset($_SESSION['is_admin']) || $_SESSION['is_admin'] != 1) { die("Net prav"); } $name = $_POST['name']; $price = $_POST['price']; $descr = $_POST['descr']; // ZAGRUZKA KARTINKI (BEZ PROVEROK) $image = ''; if ($_FILES['image']['tmp_name']) { $image = time() . '_' . $_FILES['image']['name']; move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/' . $image); } // VSTAVLYaEM V BAZU (BEZ EKRANIROVANIYA) mysql_query("INSERT INTO products (name, price, image, descr) VALUES ('$name', '$price', '$image', '$descr')"); header("Location: ?action=admin"); exit; } function deleteProduct() { if (!isset($_SESSION['is_admin']) || $_SESSION['is_admin'] != 1) { die("Net prav"); } $id = $_GET['id']; // SNAChALA UDALIM KARTINKU IZ FAYLOVOY SISTEMY (NE OBYAZATEL'NO) $res = mysql_query("SELECT image FROM products WHERE id = $id"); $row = mysql_fetch_assoc($res); if ($row['image']) { @unlink('uploads/' . $row['image']); } mysql_query("DELETE FROM products WHERE id = $id"); header("Location: ?action=admin"); exit; } function login() { if ($_POST) { $login = $_POST['login']; $pass = $_POST['pass']; // OPASNYY ZAPROS (IN'EKCIYa) $res = mysql_query("SELECT * FROM users WHERE login = '$login' AND password = '$pass'"); if ($row = mysql_fetch_assoc($res)) { $_SESSION['user_id'] = $row['id']; $_SESSION['is_admin'] = $row['is_admin']; header("Location: ?action=catalog"); exit; } else { echo "Nevernyy login/parol"; } } echo "<h2>Vkhod</h2>"; echo "<form method='post'>"; echo "Login: <input name='login'><br>"; echo "Password: <input type='password' name='pass'><br>"; echo "<input type='submit' value='Voyti'>"; echo "</form>"; echo "<a href='?action=register'>Register</a>"; } function register() { if ($_POST) { $login = $_POST['login']; $pass = $_POST['pass']; $email = $_POST['email']; // VSTAVKA BEZ EKRANIROVANIYA mysql_query("INSERT INTO users (login, password, email, is_admin) VALUES ('$login', '$pass', '$email', 0)"); echo "Registraciya uspeshna! Teper' vojdite."; header("Refresh: 2; url=?action=login"); } else { echo "<h2>Registraciya</h2>"; echo "<form method='post'>"; echo "Login: <input name='login'><br>"; echo "Password: <input type='password' name='pass'><br>"; echo "Email: <input name='email'><br>"; echo "<input type='submit' value='Zaregistrirovat'sya'>"; echo "</form>"; } } function logout() { session_destroy(); header("Location: ?action=catalog"); exit; } // SOZDAEM PAPKU DLYA ZAGRUZOK, ESLI EE NET if (!is_dir('uploads')) mkdir('uploads'); ?>
Что я могу сказать.
Достоинства:
VERSIYA 1.0 (BETA) - это хорошо.
AVTOR: NEIZVESTNY GENIY - еще лучше. Кажется, я научил ИИ чувству юмора.
Создавать все таблицы при первом запуске - неплохо
ООП не используется вообще - правильно.
Создать папку для загрузок только после того как весь код отработает - логично.
Все комментарии на транслите - не знаю, насколько намеренно, но выглядит как недостаток, так что плюс.
Как кстати и все сообщения пользователю.
Вывод все ошибок пользователю - классика, сойдет.
Вставка в БД без экранирования - да, норм.
Весь код в одном файле - ну это очевидно.
Недостатки:
Идеальное форматирование кода - очень плохо, новички так не поступают.
Мне обещали использование eval - а его нигде нет.
В CREATE TABLE есть IF NOT EXISTS - скрипт не упадет на втором запуске.
Название полей в БД на идеальном английском - не ок
AUTO_INCREMENT зачем? Генерировать id вручную при каждом добавлении не судьба?
Кавычки слишком правильно используются.
Можно было бы и не разбивать код по функциям - if-else достаточно.
Хотя бы можно было отказаться от использования switch.
Я бы еще добавил вырвиглазные цвета, например зеленый на красном фоне
Не вижу каких-то очевидных логических ошибок, просто не хватает проверок входящих данных.
Итог - ИИ написал довольно плохой код. Но мог бы сделать и хуже.
И нет, я его не запускал. Мне своего сервера жалко.
Предлагаю в комментариях попросить решить аналогичную задачу у других ИИ. И попросить их написать плохой код на других языках программирования.
UPD: Я попросил его:
"Перепиши код несколько раз, каждый раз делая его хуже."
И знаете, получилось сильно хуже! https://chat.deepseek.com/share/amvp9rzoe8133ebt2z
Источник


