Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Как подключить PHP файл на HTML страницах?

Модерирует : Cheery

articlebot (22-02-2024 01:34): Простенький вопрос по PHP  Версия для печати • ПодписатьсяДобавить в закладки

   

kodex77



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.
 
Решил немного экспериментировать и с помощью ChatGPT 3.5 создать админ панель для сайта, где все страницы на HTML. Сам процесс интересен, и это будет какой-то опыт.
 
Идея заключается в том, чтобы изначально отслеживать просмотры каждой страницы (html) и выводить все данные в админ панель. В дальнейшем, возможно, улучшить и добавить новый функционал. С некоторыми сложностями, но мне удалось создать и оформить все как мне нужно при помощи ChatGPT.
 
Теперь возникла проблема. Как подключить PHP файл на HTML страницах, чтобы он срабатывал и выполнял указанные в нем функции, а также записывал нужные данные в БД. ChatGPT предлагал разные варианты, такие как include, AJAX, но особо ничего не получилось. При прямом обращении к PHP файлу все работает, все данные записываются в БД, но нужно чтобы все это работало на HTML страницах сайтах, так как именно в этом заключается суть. У меня есть базовые знания HTML, CSS, но, к сожалению, PHP изучал только в общих чертах.  
 
Буду признателен за любые советы и подсказки, заранее спасибо.
 
 
stats.php

Код:
<?php
// Включение отображения ошибок на странице
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
 
// Включение логирования ошибок в файл
ini_set('log_errors', 1);
ini_set('error_log', __DIR__ . '/error.log');
 
// Подключение к базе данных
function connectToDatabase() {
    $servername = "localhost"; // Имя сервера
    $username = "dbusername"; // Имя пользователя базы данных
    $password = "dbpassword"; // Пароль пользователя базы данных
    $dbname = "dbname"; // Имя базы данных
 
    // Создание подключения
    $conn = new mysqli($servername, $username, $password, $dbname);
 
    // Проверка соединения
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
     
    return $conn;
}
 
// Получение HTML-контента с использованием cURL
function getHTMLContent($url) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $content = curl_exec($curl);
    curl_close($curl);
    return $content;
}
 
// Получение данных из HTML-контента
function getDataFromHTML($html) {
    preg_match('/<title>(.*?)<\/title>/', $html, $matches);
    $gameName = isset($matches[1]) ? trim(explode('-', $matches[1])[0]) : "Unknown";
    return $gameName;
}
 
// Обновление счетчика просмотров страницы
function updatePageViews($conn, $date, $gameName, $gameLink, $ipAddress) {
    // Проверка, считался ли уже уник для данного IP
    $stmt = $conn->prepare("SELECT COUNT(*) AS count FROM visit_statistics WHERE ip_address = ? AND visit_date = ?");
    if (!$stmt) {
        error_log("Ошибка подготовки запроса: (" . $conn->errno . ") " . $conn->error);
        return;
    }
    $stmt->bind_param("ss", $ipAddress, $date);
    if (!$stmt->execute()) {
        error_log("Ошибка выполнения запроса: (" . $stmt->errno . ") " . $stmt->error);
        return;
    }
    $result = $stmt->get_result();
    $row = $result->fetch_assoc();
    $stmt->close();
 
    if ($row['count'] == 0) {
        // Уника не считался для этого IP в текущий день, добавляем новую запись
        $stmt = $conn->prepare("INSERT INTO visit_statistics (visit_date, game_name, game_link, hits, uniques, ip_address) VALUES (?, ?, ?, 1, 1, ?)");
        if (!$stmt) {
            error_log("Ошибка подготовки запроса: (" . $conn->errno . ") " . $conn->error);
            return;
        }
        $stmt->bind_param("ssss", $date, $gameName, $gameLink, $ipAddress);
        if (!$stmt->execute()) {
            error_log("Ошибка выполнения запроса: (" . $stmt->errno . ") " . $stmt->error);
            return;
        }
        $stmt->close();
    } else {
        // Уника уже считался для этого IP в текущий день, увеличиваем только счетчик hits
        $stmt = $conn->prepare("UPDATE visit_statistics SET hits = hits + 1 WHERE game_name = ? AND game_link = ? AND visit_date = ? AND ip_address = ?");
        if (!$stmt) {
            error_log("Ошибка подготовки запроса: (" . $conn->errno . ") " . $conn->error);
            return;
        }
        $stmt->bind_param("ssss", $gameName, $gameLink, $date, $ipAddress);
        if (!$stmt->execute()) {
            error_log("Ошибка выполнения запроса: (" . $stmt->errno . ") " . $stmt->error);
            return;
        }
        $stmt->close();
    }
}
 
// Основная логика
$conn = connectToDatabase();
$url = 'https://site.ru';
$html = getHTMLContent($url);
$gameName = getDataFromHTML($html);
$date = date("Y-m-d");
$pageUrl = $_SERVER['REQUEST_URI'];
$ipAddress = $_SERVER['REMOTE_ADDR'];
$gameLink = "https://site.ru" . parse_url($pageUrl)['path'];
 
updatePageViews($conn, $date, $gameName, $gameLink, $ipAddress);
 
$conn->close();
?>
 

Всего записей: 196 | Зарегистр. 07-04-2012 | Отправлено: 16:03 21-02-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kodex77
есть же тема - Простенький вопрос по PHP
 
зачем вам .html страницы? .php это тот же .html, но с обработкой php кода внутри.
 
file.php:

Код:
<!DOCTYPE html>
<html lang="en">
  <head>
    <title></title>
  </head>
  <body>
<?php
  echo "Я - HTML страница";
?>
  </body>
</html>

Всего записей: 16392 | Зарегистр. 20-09-2014 | Отправлено: 20:59 21-02-2024
kodex77



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii, вопрос мне не показался простым, поэтому решил создать отдельную тему.
В любом случае спасибо за рекомендацию, спрошу свой вопрос в указанной вами теме.

Всего записей: 196 | Зарегистр. 07-04-2012 | Отправлено: 21:12 21-02-2024
   

Компьютерный форум Ru.Board » Интернет » Web-программирование » Как подключить PHP файл на HTML страницах?
articlebot (22-02-2024 01:34): Простенький вопрос по PHP


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru