/
UdOg
/
warpointshit
Обзор
Документация
Войти
/
UdOg
/
warpointshit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
admin/admin_add.php
128 строк
7 KB
UdOg
upload files
24 сен 2025, 22:22
24 сен 2025, 22:22
0489c92
Код
Авторство
О чём код?
<?php // Настроим показ ошибок ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); // Конфигурация подключения к базе данных include 'config.php'; // Директория для хранения фотографий define('IMAGE_DIR', 'C:/Users/irek/Desktop/warpoint/public_html/localhost/uploads/'); // Логика обработки формы if ($_SERVER["REQUEST_METHOD"] == "POST") { echo "POST-запрос принят!<br>"; var_dump($_POST); var_dump($_FILES); $text_content = $_POST['text_content']; // Текстовый контент $team_id = intval($_POST['id_team']); // Идентификатор команды $image_path = ''; // Переменная для пути к файлу изображения echo "Текст: $text_content<br>"; echo "Команда: $team_id<br>"; // Получаем информацию о команде из базы данных $stmt = $pdo->prepare("SELECT name_teams FROM teams WHERE id_team=?"); $stmt->execute([$team_id]); $team_data = $stmt->fetch(PDO::FETCH_ASSOC); if (!$team_data) { die("Ошибка: команда с указанным идентификатором не найдена."); } // Описание команды echo "Название команды: ".htmlspecialchars($team_data['name_teams'])."<br>"; // Обработка загрузки изображения if ($_FILES['image_file']['size'] > 0) { $uploadedFileName = uniqid() . '_' . basename($_FILES['image_file']['name']); // Уникальное имя файла // Создаем директорию, если её нет if (!is_dir(IMAGE_DIR)) { mkdir(IMAGE_DIR, 0777, true); } $targetPath = IMAGE_DIR . $uploadedFileName; // Полный путь к месту хранения файла if (move_uploaded_file($_FILES['image_file']['tmp_name'], $targetPath)) { $image_path = '/uploads/' . $uploadedFileName; // Относительный путь к файлу для отображения на сайте echo "Файл успешно перемещён.<br>"; } else { die("Ошибка при перемещении файла."); } } // Добавление записи в базу данных try { $stmt = $pdo->prepare("INSERT INTO content(text_content, image_path, id_team) VALUES(:text_content, :image_path, :id_team)"); $stmt->bindParam(':text_content', $text_content); $stmt->bindParam(':image_path', $image_path); $stmt->bindParam(':id_team', $team_id); if ($stmt->execute()) { echo "Запись успешно добавлена в базу данных!<br>"; } else { echo "Ошибка при добавлении записи: "; print_r($stmt->errorInfo()); } } catch (\PDOException $e) { die("Ошибка базы данных: " . $e->getMessage()); } echo '<p><a href="http://localhost/war/php/admin/admin_index.php"><button>Вернуться на главную страницу админа</button></a></p>'; // Без редиректа, чтобы видеть возможные ошибки // header("Location: admin_index.php"); // exit(); } // Вспомогательная функция для отправки POST-запросов на внешние сайты function sendPostRequest($url, array $fields) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: multipart/form-data']); $result = curl_exec($ch); curl_close($ch); return $result; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Добавление новой записи</title> </head> <body> <h1>Добавление новой записи</h1> <form method="post" enctype="multipart/form-data"> <label for="text_content">Текст:</label><br> <textarea name="text_content" rows="5" cols="50" required></textarea><br> <label for="image_file">Изображение:</label><br> <input type="file" name="image_file" accept="image/*" required><br> <label for="id_team">Идентификатор команды:</label><br> <select name="id_team" required> <?php // Получаем существующие команды из базы данных $stmt = $pdo->query("SELECT id_team, name_teams FROM teams ORDER BY id_team ASC"); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)): ?> <option value="<?= $row['id_team'] ?>"><?= $row['id_team'] . ' (' . $row['name_teams'] . ')' ?></option> <?php endwhile; ?> </select><br> <button type="submit">Добавить запись</button> <p>Инструкция: при выборе индификатора команд,выберается страничка,куда будет загружена фотка и текст. Пример:Если мы выберем 1(Все Свои), то текст и фотография отправятся на сайт с командой все свои. Соответсвено,если выберем <br> 2(Купер),отправим на сайт с командной купер. <br> 3(Логотип), задумка была сразу добавлять новые команды,но не додумался,возможно доработаю и можно будет создавать отсюда новые команды. <br> 4(Логотип турниров) ну хуйня,которую прикрепляют,когда турниры объявляют,по идеи везде одно и тоже. Задумка была,чтобы отсюда же добавлять фотографии с новых турниров. <br> 5(герб города),был придуман для того,чтобы можно было добавлять новые города и их карты,тоже нужно доработать. <br> 6 и 7(Карты с альмета и сан райз), возможность добавлять карты с этих локаций. <br></p> </form> </body> </html>