Свободное общение | SQL инъекция
функции упростят работу а вот код сейчас попробую переписать твой который скинул ))
boglol , не занимайся онанизмом и используй pdo
А именно, подготовленные запросы
________
посл. ред. 25.01.2025 в 23:40; всего 1 раз(а); by Лара
А именно, подготовленные запросы
________
посл. ред. 25.01.2025 в 23:40; всего 1 раз(а); by Лара
STUDIO , если получиться, я буду настолько рад, большое спасибо
boglol ,
должно работать, писал чисто по угад без тестирования ))
<?php
// не забудь про подключение к базе данных через pdo
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$login = escape($_POST['login']);
$password = escape($_POST['password']);
if (!empty($login) && !empty($password)) {
$statement = $pdo->prepare('SELECT password FROM users WHERE login LIKE :login LIMIT 1');
$statement->bindParam(':login', $login, PDO::PARAM_STR);
$statement->execute();
if ($statement->rowCount() == 1) {
$result = $statement->fetch();
if (password_verify($password, $result['password'])) {
$_SESSION['login'] = $login;
$_SESSION['key'] = generate_key(16);
response('/?ok');
}
} else {
response('/?err');
}
} else {
response('/?err');
}
}
function response($location) {
header("Location: $location");
}
function escape($data) {
return htmlspecialchars($data, ENT_QUOTES, 'UTF-8');
}
function generate_key($length) {
return bin2hex(random_bytes($length));
}
должно работать, писал чисто по угад без тестирования ))
STUDIO , ничего не понимаю, все так же черный экран..
define('DB_HOST', 'localhost'); // сервер
define('DB_NAME', ''); // имя базы
define('DB_USER', ''); // пользователь
define('DB_PASS', ''); // пароль
try {
// Устанавливаем соединение
$pdo = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=utf8mb4", DB_USER, DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Оптимизация таблиц
function db_optimize($pdo)
{
set_time_limit(20); // Ограничение по времени
$stmt = $pdo->query('SHOW TABLES');
while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
$tableName = $row[0];
$pdo->exec("OPTIMIZE TABLE `$tableName`");
}
}
// Обработка GET
foreach ($_GET as $key => $value) {
if (is_numeric($value)) {
$value = abs((int) $value);
} else {
$value = htmlspecialchars($value);
}
$_GET[$key] = $value;
}
// Обработка POST
foreach ($_POST as $key => $value) {
if (is_numeric($value)) {
$value = abs((int) $value);
} else {
$value = htmlspecialchars($value);
}
$_POST[$key] = $value;
}
} catch (PDOException $e) {
echo "Ошибка подключения: " . $e->getMessage();
}
даже использовал такое pdo подключение, и всеровно
define('DB_HOST', 'localhost'); // сервер
define('DB_NAME', ''); // имя базы
define('DB_USER', ''); // пользователь
define('DB_PASS', ''); // пароль
try {
// Устанавливаем соединение
$pdo = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=utf8mb4", DB_USER, DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Оптимизация таблиц
function db_optimize($pdo)
{
set_time_limit(20); // Ограничение по времени
$stmt = $pdo->query('SHOW TABLES');
while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
$tableName = $row[0];
$pdo->exec("OPTIMIZE TABLE `$tableName`");
}
}
// Обработка GET
foreach ($_GET as $key => $value) {
if (is_numeric($value)) {
$value = abs((int) $value);
} else {
$value = htmlspecialchars($value);
}
$_GET[$key] = $value;
}
// Обработка POST
foreach ($_POST as $key => $value) {
if (is_numeric($value)) {
$value = abs((int) $value);
} else {
$value = htmlspecialchars($value);
}
$_POST[$key] = $value;
}
} catch (PDOException $e) {
echo "Ошибка подключения: " . $e->getMessage();
}
даже использовал такое pdo подключение, и всеровно
boglol (26 янв 2025, в 0:06)
STUDIO , ничего не понимаю, все так же черный экран..
define('DB_HOST', 'localhost'); // сервер
define('DB_NAME', ''); // имя базы
define('DB_USER', ''); // пользователь
define('DB_PASS', ''); // пароль
try {
// Устанавливаем соединение
$pdo = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=utf8mb4", DB_USER, DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Оптимизация таблиц
function db_optimize($pdo)
{
set_time_limit(20); // Ограничение по времени
$stmt = $pdo->query('SHOW TABLES');
while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
$tableName = $row[0];
$pdo->exec("OPTIMIZE TABLE `$tableName`");
}
}
// Обработка GET
foreach ($_GET as $key => $value) {
if (is_numeric($value)) {
$value = abs((int) $value);
} else {
$value = htmlspecialchars($value);
}
$_GET[$key] = $value;
}
// Обработка POST
foreach ($_POST as $key => $value) {
if (is_numeric($value)) {
$value = abs((int) $value);
} else {
$value = htmlspecialchars($value);
}
$_POST[$key] = $value;
}
} catch (PDOException $e) {
echo "Ошибка подключения: " . $e->getMessage();
}
даже использовал такое pdo подключение, и всеровно
STUDIO , ничего не понимаю, все так же черный экран..
define('DB_HOST', 'localhost'); // сервер
define('DB_NAME', ''); // имя базы
define('DB_USER', ''); // пользователь
define('DB_PASS', ''); // пароль
try {
// Устанавливаем соединение
$pdo = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=utf8mb4", DB_USER, DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Оптимизация таблиц
function db_optimize($pdo)
{
set_time_limit(20); // Ограничение по времени
$stmt = $pdo->query('SHOW TABLES');
while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
$tableName = $row[0];
$pdo->exec("OPTIMIZE TABLE `$tableName`");
}
}
// Обработка GET
foreach ($_GET as $key => $value) {
if (is_numeric($value)) {
$value = abs((int) $value);
} else {
$value = htmlspecialchars($value);
}
$_GET[$key] = $value;
}
// Обработка POST
foreach ($_POST as $key => $value) {
if (is_numeric($value)) {
$value = abs((int) $value);
} else {
$value = htmlspecialchars($value);
}
$_POST[$key] = $value;
}
} catch (PDOException $e) {
echo "Ошибка подключения: " . $e->getMessage();
}
даже использовал такое pdo подключение, и всеровно
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
// не забудь про подключение к базе данных через pdo
// также default fetch FETCH ASSOC
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$login = escape($_POST['login']);
$password = escape($_POST['password']);
if (!empty($login) && !empty($password)) {
$statement = $pdo->prepare('SELECT password FROM users WHERE login LIKE :login LIMIT 1');
$statement->bindParam(':login', $login, PDO::PARAM_STR);
$statement->execute();
if ($statement->rowCount() == 1) {
$result = $statement->fetch();
if (password_verify($password, $result['password'])) {
$_SESSION['token'] = generate_key(16);
response('/?ok');
} else {
response('/?err');
}
} else {
response('/?err');
}
} else {
response('/?err');
}
} else {
// form authorization
echo 'hi ))';
}
function response($location) {
header("Location: $location");
exit;
}
function escape($data) {
return htmlspecialchars($data, ENT_QUOTES, 'UTF-8');
}
function generate_key($length) {
return bin2hex(random_bytes($length));
}
________
посл. ред. 26.01.2025 в 00:10; всего 1 раз(а); by STUDIO
boglol , поправил чутка код сверху и добавил приветствие где должна быть форма там вставь свою форму где ты заполняешь данные для авторизации
STUDIO , без результатно.. черный экран, могу в тг сам файл скинуть
Включи вывод ошибок