Загрузка данных


<?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>