- 1
Есть те, кто вопреки IT-культуре, не зассыт написать свою зп?
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−2
Есть те, кто вопреки IT-культуре, не зассыт написать свою зп?
Есть те, кто вопреки IT-культуре, не зассыт написать свою зп?
0
enum crap
{
shit = 0,
fuck,
dick,
ass,
turd,
fart,
};
static char *crap_to_str(int crap)
{
switch (crap)
{
case shit:
{
return "shit";
}
case fuck:
{
return "fuck";
}
case dick:
{
return "dick";
}
case ass:
{
return "ass";
}
case turd:
{
return "turd";
}
case fart:
{
return "fart";
}
default:
{
return "!!!UNKNOWN CRAP!!!";
}
}
}
Есть ли возможность через какую-нибудь плюсовую метушню с шаблонами, констэспрами и препроцессором нагенерировать подобную хрень из готового определения структуры?
−2
Кто рад из местных своей работой на галере?
Кто рад из местных своей работой на галере?
−1
Почему пхпшники получают поболя крестоблядей?
Почему пхпшники получают поболя крестоблядей?
0
scheduler.queue.async { [weak self] in
guard let weakself = self else {
return
}
let locations = weakself.interactor
0
#include <stdio.h>
#include <conio.h>
int main()
{
int c;
while (1)
{
c=getch();
printf("%c",c/20);
}
return 0;
}
Шифратор 228
+3
Кстати, разные эпизоды из Зеленого слоника можно сопоставить с разными статьями
о C++. Если статья про какие-то новые возможности, которые вводятся в
каком-нибудь С++20, это когда братишке покушать принесли. Если статья о том,
как можно метапрограммировать на шаблонах, то это когда вилкой говно чистить.
Ну что ты! Я тебе сейчас расскажу, вот смотри, Я тебе хорошую сейчас расскажу! Смотри, я… вот у нас здесь копипаста много… ой-ой… копипаста много, понимаешь? Смотри, копипаст, они тебе код читать мешает. А я вот, давай я здесь напишу метушни на темплейтах и консэкспрах с препроцессором сишным, и весь копипаст сокращу слышишь? Ну что, писать?
0
<?php
if(isset($_GET['action']) && $_GET['action']=="add"){
$id=intval($_GET['id']);
if(isset($_SESSION['cart'][$id])){
$_SESSION['cart'][$id]['quantity']++;
}else{
$sql_s="SELECT * FROM products
WHERE id_product={$id}";
$query_s=mysqli_query($sql_s);
if(mysqli_num_rows($query_s)!=0){
$row_s=mysqli_fetch_array($query_s);
$_SESSION['cart'][$row_s['id_product']]=array(
"quantity" => 1,
"price" => $row_s['price'] );
}else{
$message="This product id it's invalid!"; } } } ?>
<h1>Product List</h1>
<?php
if(isset($message)){
echo "<h2>$message</h2>"; }
?>
<table>
<tr>
<th>Name</th>
<th>Description</th>
<th>Price</th>
<th>Action</th>
</tr>
<?php
$mysqli = new mysqli('……','root','……','tutorials');
$sql = 'SELECT name,description,price, id_product FROM products'; // select from mysql
$result = $mysqli->query($sql);
while($row = $result->fetch_array()){
?>
<tr>
<td><?php echo $row['name'] ?></td>
<td><?php echo $row['description'] ?></td>
<td><?php echo $row['price'] ?>$</td>
<td><a href="index.php?page=products&action=add&id=<?php echo $row['id_product'] ?>">Add to cart</a></td>
</tr>
<?php
}
?>
</table>
строки:
2 - Входящую переменную так никто не проверяет. Есть функции filter_input
3 - $_GET['id'] без проверки на существовании
9 - mysqli_query - 1) аргумент, Идентификатор соединения. 2) сам запрос
10 - процесс проверки num_rows глупый. Есть 0 ( ложь ), либо в остальных случаях истина.
12 - мы выбивали из запроса id_product чтобы узнать и подставить значение как ключ $_SESSION['cart'][$row_s['id_product']] ??? Уверяю, я знаю уже ключ: $_SESSION['cart'][$id]
30 - Глупая, тупая ошибка новичков. Постоянно на каждой логике кода, устанавливают новое соединение с бд. Нравится в постели оргия, любите много и сразу?
Говнокодер: rita345
https://php.ru/forum/threads/this-product-id-its-invalid.74253/
+1
https://imgur.com/a/IgqXRK7
+1
Откуда пошло выражение "... тебе за щеку, проверь"?