Загрузка данных
<?php
session_start();
$host = '127.0.0.1';
$db = 'cleaning_db';
$user = 'root';
$pass = ''; // ваш пароль к БД
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
];
try {
$pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
?>
register
<?php
require 'db.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$stmt = $pdo->prepare('INSERT INTO users (full_name, phone, email, login, password) VALUES (?, ?, ?, ?, ?)');
// В идеале использовать password_hash($_POST['password'], PASSWORD_DEFAULT)
$stmt->execute([$_POST['full_name'], $_POST['phone'], $_POST['email'], $_POST['login'], $_POST['password']]);
header('Location: login.php');
exit;
}
?>
<form method="POST">
<input type="text" name="full_name" placeholder="ФИО" required>
<button type="submit">Зарегистрироваться</button>
</form>
login
<?php
require 'db.php';
$error = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$stmt = $pdo->prepare('SELECT * FROM users WHERE login = ? AND password = ?');
$stmt->execute([$_POST['login'], $_POST['password']]);
$user = $stmt->fetch();
if ($user) {
$_SESSION['user_id'] = $user['id'];
$_SESSION['role'] = $user['role'];
if ($user['role'] === 'admin') header('Location: admin.php');
else header('Location: dashboard.php');
exit;
} else {
$error = 'Неверный логин или пароль';
}
}
?>
requste
<?php
require 'db.php';
if (!isset($_SESSION['user_id'])) { header('Location: login.php'); exit; }
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$stmt = $pdo->prepare('INSERT INTO requests (user_id, address, contact_data, service_type, request_date, request_time, payment_type) VALUES (?, ?, ?, ?, ?, ?, ?)');
$stmt->execute([
$_SESSION['user_id'], $_POST['address'], $_POST['contact_data'],
$_POST['service_type'], $_POST['request_date'], $_POST['request_time'], $_POST['payment_type']
]);
header('Location: dashboard.php');
exit;
}
?>
admin
<?php
require 'db.php';
if ($_SESSION['role'] !== 'admin') { header('Location: login.php'); exit; }
// Смена статуса
if (isset($_POST['update_status'])) {
$reason = $_POST['status'] === 'Отменено' ? $_POST['reject_reason'] : null;
$stmt = $pdo->prepare('UPDATE requests SET status = ?, reject_reason = ? WHERE id = ?');
$stmt->execute([$_POST['status'], $reason, $_POST['request_id']]);
}
// Получение всех заявок
$stmt = $pdo->query('SELECT requests.*, users.full_name FROM requests JOIN users ON requests.user_id = users.id');
$requests = $stmt->fetchAll();
?>
html
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Дизайн: Авторизация</title>
<style>
body {
display: flex; justify-content: center; align-items: center;
background: #e0e0e0; margin: 0; height: 100vh; font-family: sans-serif;
}
.mobile-screen {
width: 390px; height: 844px; /* Жестко заданное разрешение */
background: #ffffff;
box-shadow: 0 0 20px rgba(0,0,0,0.1);
position: relative;
overflow: hidden;
display: flex; flex-direction: column; padding: 20px; box-sizing: border-box;
}
h1 { text-align: center; color: #333; font-size: 24px; margin-top: 50px; }
.input-group { margin-bottom: 20px; }
input, select { width: 100%; padding: 15px; border: 1px solid #ccc; border-radius: 8px; box-sizing: border-box;}
.btn { background: #0056b3; color: white; border: none; padding: 15px; width: 100%; border-radius: 8px; font-size: 16px; cursor: pointer; }
.footer-link { text-align: center; margin-top: 20px; color: #666; font-size: 14px;}
</style>
</head>
<body>
<div class="mobile-screen">
<h1>Мой Не Сам</h1>
<p style="text-align: center; color: #666; margin-bottom: 40px;">Вход в систему</p>
<div class="input-group">
<input type="text" placeholder="Логин">
</div>
<div class="input-group">
<input type="password" placeholder="Пароль">
</div>
<button class="btn">Войти</button>
<div class="footer-link">Нет аккаунта? Зарегистрироваться</div>
</div>
</body>
</html>