добавить на эту страницу возможность редактировать логин и пароль админа
<?php
session_start();

// Установите параметры подключения к БД
$host = "localhost"; 
$dbname = "shop_db"; 
$user = "postgres"; 
$password = "11299133"; 
$port = "5433"; 

// Подключаемся к базе данных
$conn = pg_connect("host=$host port=$port dbname=$dbname user=$user password=$password");

// Проверка, что администратор авторизован
if (!isset($_SESSION['admin_id'])) {
    // Перенаправляем на страницу входа, если не авторизован
    header('Location: admin_login.php');
    exit();
}

// Обработка добавления/редактирования новостей и товаров
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $title = trim($_POST['record_title']);
    $description = trim($_POST['record_description']);
    $image_link = trim($_POST['record_image_link']);

    // Редактирование новости
    if (isset($_POST['edit_news'])) {
        $id = intval($_POST['record_id']);
        $query = "UPDATE news SET title = '$title', description = '$description', image = '$image_link' WHERE id = $id";
        if (pg_query($conn, $query) === FALSE) {
            echo "Ошибка выполнения запроса: " . pg_last_error($conn);
        }
        // Сохраняем активную вкладку
        $_SESSION['activeTab'] = 'news'; // Делаем вкладку активной
    } 
    // Добавление новости
    elseif (isset($_POST['add_news'])) {
        if (!empty($title) && !empty($description) && !empty($image_link)) {
            $query = "INSERT INTO news (title, description, image) VALUES ('$title', '$description', '$image_link')";
            if (pg_query($conn, $query) === FALSE) {
                echo "Ошибка выполнения запроса: " . pg_last_error($conn);
            }
        } else {
            echo "Все поля должны быть заполнены корректно.";
        }
        // Сохраняем активную вкладку
        $_SESSION['activeTab'] = 'news'; // Делаем вкладку активной
    }

    // Обработка добавления/редактирования товаров
    if (isset($_POST['edit_product'])) {
        $id = intval($_POST['record_id']);
        $price = floatval($_POST['product_price']);
        $query = "UPDATE products SET name = '$title', description = '$description', image = '$image_link', price = $price WHERE id = $id";
        if (pg_query($conn, $query) === FALSE) {
            echo "Ошибка выполнения запроса: " . pg_last_error($conn);
        }
        // Сохраняем активную вкладку
        $_SESSION['activeTab'] = 'products'; // Делаем вкладку активной
    } 
    elseif (isset($_POST['add_product'])) {
        $price = floatval($_POST['product_price']);
        if (!empty($title) && !empty($description) && !empty($image_link) && $price > 0) {
            $query = "INSERT INTO products (name, description, image, price) VALUES ('$title', '$description', '$image_link', $price)";
            if (pg_query($conn, $query) === FALSE) {
                echo "Ошибка выполнения запроса: " . pg_last_error($conn);
            }
        } else {
            echo "Все поля должны быть заполнены корректно.";
        }
        // Сохраняем активную вкладку
        $_SESSION['activeTab'] = 'products'; // Делаем вкладку активной
    }

    header('Location: ' . $_SERVER['PHP_SELF']);
    exit();
}

// Обработка удаления новостей или товаров
if (isset($_GET['delete_news'])) {
    $id = intval($_GET['delete_news']);
    pg_query($conn, "DELETE FROM news WHERE id = $id");
}

if (isset($_GET['delete_product'])) {
    $id = intval($_GET['delete_product']);
    pg_query($conn, "DELETE FROM products WHERE id = $id");
}

if (isset($_GET['delete_order'])) {
    $id = intval($_GET['delete_order']);
    pg_query($conn, "DELETE FROM orders WHERE id = $id");
}

// Получение списка новостей и товаров
$result_news = pg_query($conn, "SELECT * FROM news");
$news_list = pg_fetch_all($result_news);
$result_products = pg_query($conn, "SELECT * FROM products");
$products_list = pg_fetch_all($result_products);

// Получение списка заказов
$result_orders = pg_query($conn, "
    SELECT 
        o.id, 
        p.name AS product_name, 
        o.first_name, 
        o.last_name, 
        o.address, 
        o.phone, 
        o.email, 
        o.quantity, 
        o.total, 
        o.payment_method, 
        o.order_date 
    FROM 
        orders o 
    JOIN 
        products p ON o.product_id = p.id
");
$orders_list = pg_fetch_all($result_orders);
?>

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Админ-панель</title>
    <link rel="stylesheet" href="style.css"> 
</head>
<body>
<header>
    <div class="logo">
        <img src="https://img.freepik.com/premium-vector/online-shop-logo-designs-concept-vector-online-store-logo-designs_7649-661.jpg" alt="Логотип интернет-магазина">
    </div>
    <nav class="navbar">
        <ul>
            <li><a href="index.php">Главная</a></li>
            <li><a href="order.html">Форма заказа</a></li>
            <li><a href="contacts.html">Контакты</a></li>
            <li><a href="calc.html">Калькулятор</a></li>
            <li><a href="admin_login.php">Авторизация</a></li>
        </ul>
    </nav>
    <div class="burger-menu">☰</div>
</header>
<div class="container">
    <h2>Админ-панель</h2>
    <div class="tabs">
        <button class="tab-button active" onclick="showTab('news')">Новости</button>
        <button class="tab-button" onclick="showTab('products')">Товары</button>
    </div>

    <div id="news-tab">
        <h3>Список новостей</h3>
        <button onclick="openModal('add', 'news')">Добавить новость</button>
        <table>
            <thead>
                <tr>
                    <th>#</th>
                    <th>Заголовок</th>
                    <th>Описание</th>
                    <th>Изображение</th>
                    <th>Действия</th>
                </tr>
            </thead>
            <tbody>
                <?php if ($news_list): ?>
                    <?php foreach ($news_list as $news): ?>
                        <tr>
                            <td><?php echo $news['id']; ?></td>
                            <td><?php echo htmlspecialchars($news['title']); ?></td>
                            <td><?php echo htmlspecialchars($news['description']); ?></td>
                            <td><img src="<?php echo $news['image']; ?>" alt="News" width="50"></td>
                            <td>
                                <button onclick="openModal('edit', 'news', <?php echo htmlspecialchars(json_encode($news), ENT_QUOTES); ?>)">Редактировать</button>
                                <a href="?delete_news=<?php echo $news['id']; ?>" onclick="return confirm('Вы уверены?');">Удалить</a>
                            </td>
                        </tr>
                    <?php endforeach; ?>
                <?php else: ?>
                    <tr>
                        <td colspan="5">Нет новостей</td>
                    </tr>
                <?php endif; ?>
            </tbody>
        </table>
    </div>

    <div id="products-tab" style="display: none;">
        <h3>Список товаров</h3>
        <button onclick="openModal('add', 'product')">Добавить товар</button>
        <table>
            <thead>
                <tr>
                    <th>#</th>
                    <th>Название</th>
                    <th>Описание</th>
                    <th>Изображение</th>
                    <th>Цена</th>
                    <th>Действия</th>
                </tr>
            </thead>
            <tbody>
                <?php if ($products_list): ?>
                    <?php foreach ($products_list as $product): ?>
                        <tr>
                            <td><?php echo $product['id']; ?></td>
                            <td><?php echo htmlspecialchars($product['name']); ?></td>
                            <td><?php echo htmlspecialchars($product['description']); ?></td>
                            <td><img src="<?php echo $product['image']; ?>" alt="Product" width="50"></td>
                            <td><?php echo htmlspecialchars($product['price']); ?> руб.</td>
                            <td>
                                <button onclick="openModal('edit', 'product', <?php echo htmlspecialchars(json_encode($product), ENT_QUOTES); ?>)">Редактировать</button>
                                <a href="?delete_product=<?php echo $product['id']; ?>" onclick="return confirm('Вы уверены?');">Удалить</a>
                            </td>
                        </tr>
                    <?php endforeach; ?>
                <?php else: ?>
                    <tr>
                        <td colspan="6">Нет товаров</td>
                    </tr>
                <?php endif; ?>
            </tbody>
        </table>
    </div>
</div>

<!-- Модальное окно для добавления/редактирования новостей и товаров -->
<div id="modal" class="modal">
    <div class="modal-content">
        <span class="close" onclick="closeModal()">&times;</span>
        <h3 id="modal-title">Добавить новость</h3>
        <form id="modal-form" action="" method="POST">
            <input type="hidden" name="record_id" id="record_id">
            <input type="text" name="record_title" id="record_title" placeholder="Заголовок" required>
            <textarea name="record_description" id="record_description" placeholder="Описание" required></textarea>
            <input type="text" name="record_image_link" id="record_image_link" placeholder="Ссылка на изображение" required>

            <!-- Поле для цены (только для продуктов) -->
            <div id="price-field" style="display: none;">
                <input type="number" step="0.01" name="product_price" id="record_price" placeholder="Цена" min="0">
            </div>

            <button type="submit" id="modal-submit">Добавить</button>
        </form>
    </div>
</div>
<div class="orders-container">
    <h2 class="section-title">Управление Заказами</h2>
    
    <div class="orders-tab">
        <h3>Список заказов</h3>
        <table>
            <thead>
                <tr>
                    <th>#</th>
                    <th>Товар</th>
                    <th>Имя</th>
                    <th>Фамилия</th>
                    <th>Адрес</th>
                    <th>Телефон</th>
                    <th>Email</th>
                    <th>Количество</th>
                    <th>Итог</th>
                    <th>Способ оплаты</th>
                    <th>Создано</th>
                    <th>Действия</th>
                </tr>
            </thead>
            <tbody>
                <?php if ($orders_list): ?>
                    <?php foreach ($orders_list as $order): ?>
                        <tr>
                            <td><?php echo $order['id']; ?></td>
                            <td><?php echo $order['product_name']; ?></td>
                            <td><?php echo htmlspecialchars($order['first_name']); ?></td>
                            <td><?php echo htmlspecialchars($order['last_name']); ?></td>
                            <td><?php echo htmlspecialchars($order['address']); ?></td>
                            <td><?php echo htmlspecialchars($order['phone']); ?></td>
                            <td><?php echo htmlspecialchars($order['email']); ?></td>
                            <td><?php echo htmlspecialchars($order['quantity']); ?></td>
                            <td><?php echo htmlspecialchars($order['total']); ?> руб.</td>
                            <td><?php echo htmlspecialchars($order['payment_method']); ?></td>
                            <td><?php echo $order['order_date']; ?></td>
                            <td>
                                <a href="?delete_order=<?php echo $order['id']; ?>" onclick="return confirm('Вы уверены?');">Удалить</a>
                            </td>
                        </tr>
                    <?php endforeach; ?>
                <?php else: ?>
                    <tr>
                        <td colspan="12">Нет заказов</td>
                    </tr>
                <?php endif; ?>
            </tbody>
        </table>
    </div>
</div>
<script>
function showTab(tabName) {
    const newsTab = document.getElementById("news-tab");
    const productsTab = document.getElementById("products-tab");
    
    if (tabName === 'news') {
        newsTab.style.display = "block";
        productsTab.style.display = "none";
        document.querySelector('.tab-button.active').classList.remove('active');
        document.querySelector('.tab-button:nth-child(1)').classList.add('active');
    } else {
        newsTab.style.display = "none";
        productsTab.style.display = "block";
        document.querySelector('.tab-button.active').classList.remove('active');
        document.querySelector('.tab-button:nth-child(2)').classList.add('active');
    }
}

function openModal(mode, type, id = null) {
    const modal = document.getElementById("modal");
    const modalTitle = document.getElementById("modal-title");
    const priceField = document.getElementById("price-field");

    if (type === 'news') {
        if (mode === 'edit') {
            modalTitle.textContent = 'Редактировать новость';
            document.getElementById("record_id").value = id.id; // ID новости
            document.getElementById("record_title").value = id.title; // Заголовок
            document.getElementById("record_description").value = id.description; // Описание
            document.getElementById("record_image_link").value = id.image; // Изображение
            document.getElementById("modal-submit").innerText = 'Сохранить'; // Изменить текст кнопки
            document.getElementById("modal-submit").name = 'edit_news';
        } else {
            modalTitle.textContent = 'Добавить новость';
            document.getElementById("modal-form").reset();
            document.getElementById("modal-submit").innerText = 'Добавить';
            document.getElementById("modal-submit").name = 'add_news';
        }
        priceField.style.display = "none"; // Скрыть поле цены для новостей
    } else if (type === 'product') {
        if (mode === 'edit') {
            modalTitle.textContent = 'Редактировать товар';
            document.getElementById("record_id").value = id.id; // ID товара
            document.getElementById("record_title").value = id.name; // Название
            document.getElementById("record_description").value = id.description; // Описание
            document.getElementById("record_image_link").value = id.image; // Изображение
            document.getElementById("record_price").value = id.price; // Цена
            document.getElementById("modal-submit").innerText = 'Сохранить'; // Изменить текст кнопки
            document.getElementById("modal-submit").name = 'edit_product';
        } else {
            modalTitle.textContent = 'Добавить товар';
            document.getElementById("modal-form").reset();
            document.getElementById("modal-submit").innerText = 'Добавить';
            document.getElementById("modal-submit").name = 'add_product';
        }
        priceField.style.display = "block"; // Показать поле цены для продуктов
    }

    modal.style.display = "block"; // Показываем модальное окно
}

function closeModal() {
    document.getElementById("modal").style.display = "none"; // Закрываем модальное окно
}

document.addEventListener("DOMContentLoaded", function() {
    const activeTab = "<?php echo isset($_SESSION['activeTab']) ? $_SESSION['activeTab'] : 'news'; ?>"; // Восстановление активной вкладки
    showTab(activeTab);

    // Восстановление позиции прокрутки
    window.scrollTo(0, localStorage.getItem('scrollPosition') || 0);
    
    // Сохранение позиции прокрутки при уходе со страницы
    window.addEventListener('beforeunload', function() {
        localStorage.setItem('scrollPosition', window.scrollY);
    });
});
</script>
<script src="script.js"></script>
</body>
</html>