В настоящее время я кодирую веб-страницу, которая позволяет пользователям изменять локальные настройки на встроенном компьютере на одной плате. Функция, над которой я сейчас работаю, включает синхронизацию часов на плате с часами на компьютере пользователя. Функция Date() Javascript позволяет мне получить время локальной машины, поэтому я использую это для получения текущего времени.
Моя цель - создать кнопку отправки, которая при нажатии будет захватывать точное время из функции javascript Date(), а затем использовать метод POST, чтобы вернуть это время в мой PHP-код. Причина, по которой мне нужно установить POST, - это запустить программу командной строки Linux с привилегиями изменить настройку времени платы.
Прямо сейчас, плата получает время правильно и правильно отправляет его, но проблема, с которой я сталкиваюсь, заключается в том, что возвращенное время - это время загрузки страницы, а не время нажатия кнопки отправки.
Это проблема, потому что если пользователь сидит на веб-странице, скажем, через 5 минут, а затем нажимает на эту кнопку, часы на плате будут отправляться на 5 минут.
Я пробовал POSTing значение, назначив его скрытому элементу ввода, который успешно отправляет его, но время POSTed - это время загрузки страницы. Другой метод, который я пытался, заключался в добавлении вызова onUnload функции javascript в тег <body>
, но значение, похоже, не получает POSTED при попытке передать это время с использованием того же метода.
Вот важные куски кода, что я работаю с:
<?php
echo "<form method='POST' action='".$PHP_SELF."'>";
if (isset($_POST['getLocalTime']))
{
echo $_POST['localTime'].'<br>';
$setLocalTime = "My Commandline String";
exec($setLocalTime);
}
?>
<input type="hidden" id="localTime" name="localTime">
<script language='JavaScript'>
var date = new Date();
var d = date.getUTCDate();
var day = (d < 10) ? '0' + d : d;
var m = date.getUTCMonth() + 1;
var month = (m < 10) ? '0' + m : m;
var year = date.getUTCFullYear();
var h = date.getUTCHours();
var hour = (h < 10) ? '0' + h : h;
var mi = date.getUTCMinutes();
var minute = (mi < 10) ? '0' + mi : mi;
var sc = date.getUTCSeconds();
var second = (sc < 10) ? '0' + sc : sc;
var loctime = month + day + hour + minute + year + "." + second;
document.getElementById('localTime').value = loctime;
</script>
<?php
echo "<pre>";
print_r($_POST);
echo "</pre>";
?>
<input class="button" type="submit" name="getLocalTime" value="Copy Local Time">
</form>
Я ценю любые предложения, которые могут быть предоставлены, и заранее спасибо.
Большое спасибо! Он отлично работает! – jetbomber117