#php #javascript
#php #javascript
Вопрос:
У меня есть счетчик java-скриптов на моей php-странице. (Вероятно, мне следует добавить, что я не знаю java script). Он отображает время, в течение которого пользователь активен на странице. Моя проблема в том, что если пользователь нажимает клавишу F5 или обновляет страницу, счетчик снова начинается с 0. Как мне изменить это, чтобы оно запоминало время? Помощь будет высоко оценена.
Javascript:
var pageVisisted = new Date();
setInterval(function() {
var timeOnSite = new Date() - pageVisisted;
var secondsTotal = timeOnSite / 1000;
var hours = Math.floor(secondsTotal / 3600);
var minutes = Math.floor(secondsTotal / 60) % 3600;
var seconds = Math.floor(secondsTotal) % 60;
document.getElementById('counter').innerHTML = hours ":" minutes ":" seconds;
}, 1000);
Страница php
<head>
<?php
session_start();
?>
<script type="text/javascript" src="counter.js"></script>
</head>
<body>
<?php
echo "<span id='counter'></span>";
?>
</body>
Ответ №1:
Для этого вы можете использовать cookie. Поскольку вы говорите, что не знаете javascript, возможно, вы захотите просто просмотреть эту страницу http://www.quirksmode.org/js/cookies.html где он сообщает вам, как читать и записывать файлы cookie. Каждый раз, когда вы оцениваете время на сайте, просто считывайте / записывайте в этот файл cookie, и он все равно будет там, когда страница перезагрузится.
Комментарии:
1. хорошо, спасибо, пройду через это. Просто вопрос, что, если на клиентском компьютере не включены файлы cookie? Извините, я всегда держался подальше от файлов cookie из-за этого.
2. Ну, если у них нет файлов cookie, они, вероятно, привыкли к тому, что веб-сайты не работают. Но вашей альтернативой было бы сделать обратные вызовы Ajax на вашу страницу PHP и продолжать обновлять их сеанс. Я не рекомендую это. Примерно так же вероятно, что у них нет javascript, как и нет файлов cookie.
3. Это не сработает, но, вероятно, 99% всех веб-сайтов, которые используют файлы cookie для облегчения сеансов, тоже не будут. Так же вероятно, что клиент не разрешит javascript, как и то, что он не будет хранить файлы cookie, и в этом случае. Если они разрешают javascript, они, скорее всего, также разрешат сеансовые файлы cookie, и вы бы использовали для этого сессионный файл cookie. Сессионный файл cookie сохраняется только до тех пор, пока открыт браузер.
4. На самом деле, работает ли сеанс PHP без включенных файлов cookie? Я не знаю. ASP.NET поддерживает сеансы без использования cookies, поэтому я предполагал, но плохо знаю PHP.
5. Хорошо, спасибо всем, я начну с файлов cookie. Опубликую то, что я сделал.