оставить на Тильде ради SEO
На мой взгляд, это кошмарные костыли, но возможно есть идеи реализации, или конкретные подводные камни, которые вы можете описать, и заказчик передумает так делать :)
-
меняет знак числа на противополнжный. Запись с унарным минусом -$x
эквивалентна записи 0 - $x
.+
не меняет знак числа. Запись с унарным плюсом +$x
эквивалентна записи 0 + $x
.(лево ИЛИ право) ИЛИ (верх ИЛИ низ)
// Левое ИЛИ правое значение.
type OffsetHorizontal =
| { left: number; right?: never; }
| { right: number; left?: never; }
// Верхнее ИЛИ нижнее значение.
type OffsetVertical =
| { top: number; bottom?: never; }
| { bottom: number; top?: never; }
// Горизонтальные значения, с запретом использования с вертикальными.
type OffsetHorizontalOnly = OffsetHorizontal & {
top?: never;
bottom?: never;
}
// Вертикальные значения, с запретом использования с горизонтальными.
type OffsetVerticalOnly = OffsetVertical & {
left?: never;
right?: never;
}
// OffsetHorizontalOnly ИЛИ OffsetVerticalOnly.
type Offset = OffsetHorizontalOnly | OffsetVerticalOnly;
// Верно:
// { left: 100 }
// { right: 100 }
// { top: 100 }
// { bottom: 100 }
// Неверно:
// { left: 100, right: 100 }
// { top: 100, bottom: 100 }
// { left: 100, top: 100 }
// { right: 100, top: 100 }
// { left: 100, bottom: 100 }
// { right: 100, bottom: 100 }
// Левое ИЛИ правое значение.
type OffsetHorizontal =
| { left: number; right?: never; }
| { right: number; left?: never; }
// Верхнее ИЛИ нижнее значение.
type OffsetVertical =
| { top: number; bottom?: never; }
| { bottom: number; top?: never; }
// OffsetHorizontal И/ИЛИ OffsetHorizontal.
type Offset =
| OffsetHorizontal
| OffsetVertical
| (OffsetHorizontal & OffsetVertical);
// Верно:
// { left: 100 }
// { right: 100 }
// { top: 100 }
// { bottom: 100 }
// { left: 100, top: 100 }
// { right: 100, top: 100 }
// { left: 100, bottom: 100 }
// { right: 100, bottom: 100 }
// Неверно:
// { left: 100, right: 100 }
// { top: 100, bottom: 100 }
<?php
class DB
{
private static $instance = null;
private $pdo;
private function __construct()
{
$host = 'localhost';
$dbname = 'your_database';
$username = 'your_username';
$password = 'your_password';
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$dbname;charset=$charset";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
];
$this->pdo = new PDO($dsn, $username, $password, $options);
}
public static function getInstance()
{
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance->pdo;
}
private function __clone() {}
private function __wakeup() {}
}
class Data
{
public function __construct($param1, $param2)
{
// Получаем PDO напрямую
$this->db = DB::getInstance();
}
public function example()
{
// $query = $this->db->query("SELECT * FROM table");
// $query->execute();
// $stmt = $this->db->prepare("...");
}
}
данные формы не поступают в таблицу.
const pool = mysql.createPool
app.post("/two.html", urlencodedParser, function (req, res) {
// Подключение к бд
const urlencodedParser = express.urlencoded({extended: false});
// app.post эндпоинт
if(!req.body) return res.sendStatus(400);
console.log("req.body);
if (!req.body) return res.status(400).send("Данные не были отправлены");
if(err) return console.log(err);
if (err) {
console.error('Error:', err);
return res.status(500).send('Server error');
}
const name = req.body.name;
const usluga = req.body.usluga;
const tel = req.body.tel;
const {name, usluga, tel} = req.body;
< form action="/two.html" method="post">
<form action="/submit-form" method="post">
$_GET
и уж конечно никаких $cats=$site->qa("select * from categories where catid=0 order by name asc");
Тогда они будут простыми и ошибку будет сложнее совершить и гораздо легче найти. А если она случится в контроллере, то там уже трейс будет нормальный.