У меня есть пример кода для отслеживания загрузки страницы, во всяком случае, когда я пытаюсь перезагрузить страницу, значение отслеживания вставлено дважды
Мой пример проекта содержит три файла без файла конфигурации базы данных
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));
?>
Теперь я хочу, если Я перезагружаю индексный файл Данные клиента сохраняются только один раз в базе данных
Помогите пожалуйста