Когда я перезагружаю страницу, значение сохраняется дважды - PullRequest
0 голосов
/ 02 мая 2020

У меня есть пример кода для отслеживания загрузки страницы, во всяком случае, когда я пытаюсь перезагрузить страницу, значение отслеживания вставлено дважды

Мой пример проекта содержит три файла без файла конфигурации базы данных

1- index. html

<!DOCTYPE html>
<html>
<head>
    <title>Title</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</head>
<body style="text-align: center;">
<p style="font-size: 40px;padding-top: 100px;">The Index Page</p>
<br>
<br>
<div class="alert alert-success" role="alert">
  <label class="return_value">
</div>

</label>

<!--script src="vendor.js"></script-->
<script type="text/javascript">
    $(document).ready(function () {
        $.getJSON("fetch_data.php", function(e) {
            var
                ip = e.ip,
                os = e.os,
                browser = e.browser,
                os_bit = e.os_bit,
                page_name = $(document).find("title").text(),
                pathname = window.location.pathname,
                url = window.location.href,
                origin = window.location.origin,
                date = e.date,
                time = e.time,
                date_time = e.date_time,
                data = new FormData()
            ;
            data.append('ip', ip);
            data.append('os', os);
            data.append('browser', browser);
            data.append('os_bit', os_bit);
            data.append('page_name', page_name);
            data.append('pathname', pathname);
            data.append('url', url);
            data.append('origin', origin);
            data.append('date', date);
            data.append('time', time);
            data.append('date_time', date_time);
            $.ajax({
                url: 'save_data.php',
                type: 'POST',
                data: data,
                processData: false,
                contentType: false,
                dataType: 'json',
                success: function (response) {
                    $(".return_value").text(response.returnText)
                }
            });
        });
    })
</script>
</body>
</html>

2-fetch_data. php

<?php
include 'get_data.php';
$data = new GetDataPlugin();
$ip = $data->ip();
$browser = $data->browser();
$os = $data->os();
$os_bit = $data->architecture();
date_default_timezone_set("Africa/Cairo");
$date = date('Y-m-d');
$time = date('H:i:s');
$date_time = date('Y-m-d H:i:s');


echo json_encode(array("ip"=>$ip,"os"=>$os,"browser"=>$browser,"os_bit"=>$os_bit,"date"=>$date,"time"=>$time,"date_time"=>$date_time));

?>

3-get_data. php

<?php
$returnText = "";
$status = 0;

require 'db.php';

$ip = $_POST['ip'];
$os = $_POST['os'];
$browser = $_POST['browser'];
$os_bit = $_POST['os_bit'];
$page_name = $_POST['page_name'];
$pathname = $_POST['pathname'];
$url = $_POST['url'];
$origin = $_POST['origin'];
$date = $_POST['date'];
$time = $_POST['time'];
$date_time = $_POST['date_time'];

$sql = "INSERT INTO actions (ip, os, browser, os_bit, page_name, pathname, url, origin, date, time, date_time)
        VALUES ('$ip', '$os', '$browser','$os_bit', '$page_name', '$pathname', '$url', '$origin', '$date', '$time', '$date_time')";
$result = mysqli_query($link, $sql);
if ($result = mysqli_query($link, $sql)){
    $status = 1;
    $returnText = "Data must be saved in database now!";
}else{
    $status = 0;
    $returnText = "Error when send or save data!";
}
echo json_encode(array("status"=>$status,"returnText"=>$returnText));

?>

Теперь я хочу, если Я перезагружаю индексный файл Данные клиента сохраняются только один раз в базе данных

Помогите пожалуйста

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...