2017-02-14 9 views
3

Я хочу посчитать количество раз, когда моя веб-страница обновлена. Затем отобразите сообщение на странице вместе с количеством обновлений.Попытка сделать счетчик посещений сайта

Например, при первом обновлении появляется следующее сообщение: «1 обновить, продолжить» и т. Д. Предложения будут продолжать меняться с количеством обновлений. Мне нужно напечатать до 10 предложений по крайней мере.

Первоначально я думал, что я просто поставлю предложения в массиве, а затем использую куки, чтобы подсчитать количество обновлений, а затем отобразить соответствующее предложение в соответствии с количеством обновлений.
Однако cookie-файлы являются проблемой, поскольку они хранят строки, а не целые числа. Я пробовал использовать функции Number() и parseInt(), но они, похоже, не работают, и по какой-то причине использование JavaScript для этого испортило всю мою веб-страницу.

Тогда я думал об использовании сессий в PHP. Они также казались приятными с первого взгляда и моего рода вещи (потому что мне не нравится делать что-либо на стороне клиента). Но они также не работают, и я получаю половину своего заявления на печать на своей веб-странице. Никакой счетчик, ничего.

Я прочитал предыдущие вопросы.
Я пробовал куки.
Я пробовал сессии.

Мой PHP-файл для счетчика -

<?PHP 
session_start(); 

if(isset($_SESSION['views'])) { 
    $_SESSION['views'] = $_SESSION['views']+ 1; 
} else { 
    $_SESSION['views'] = 1; 
} 
echo "Total page views = ". $_SESSION['views']; 
?> 

Мой index.html файл содержит этот скрипт в конце, чтобы запустить данный скрипт, который хранится в другом файле с именем counter.php.

<?php 
echo "<hr><div align=\"center\">"; 
    include_once "counter.php"; // this will include the counter. 
echo "</div>"; 
?> 

Однако, когда я загружаю мою страницу я получаю только "; include_once "counter.php"; // this will include the counter. echo ""; ?> на дне.

Любое решение приветствуется. Куки-файлы или сеансы или что-то еще. Мне нужно, чтобы все было в порядке.

PS- очень жаль, но я не могу предоставить ссылку на мой веб-страницы, как я должен держать его конфиденциальным до 15 февраля 2017.

+4

php не будет выполняться в расширении '.html'. измените 'index.html' на' index.php', а затем проверьте. Также добавьте '' Поверх 'index.php', чтобы он мог отображать данные сеанса –

ответ

1

Вы все еще можете добиться того, что вам требуется, используя кук, или даже LocalStorage или sessionStorage. Вам просто нужно получить значение при загрузке страницы и показать ее, прежде чем увеличивать значение при перезагрузке страницы. Попробуйте это:

<h1></h1> 
<button>Refresh</button> 
var refreshes = parseInt(sessionStorage.getItem('refreshes'), 10) || 0; 
$('h1').text('Refreshed ' + refreshes + ' time(s)'); 

$('button').click(function() { 
    sessionStorage.setItem('refreshes', ++refreshes); 
    window.location.reload(); 
}) 

Example fiddle

+0

Возникла проблема. Я хочу, чтобы счетчик остался, когда сайт закрыт. 'localStorage' сохраняет значение счетчика даже после перезапуска браузера. Какие-нибудь исправления? – YaddyVirus

+0

Yep - в этом случае замените 'localStorage'' sessionStorage'. Синтаксис в остальном идентичен. Я обновил ответ для вас –

+0

Я скопировал этот js в отдельный файл и добавил заголовок так же, как и в скрипке, но на моей странице ничего не отображается (да, я связал js по сценарию src) – YaddyVirus

2

PHP не будет выполнять в .html расширения ,

(Пока некоторые обходные не сделано через .htacces или URL-rewriting)

1.So изменения index.html к index.php

2.Also добавить <?php session_start();?> поверх index.php так, что он может показать сессии данные.

Примечание: - После выполнения этих двух изменений, проверьте один раз.

скриншот последовательного обновления страницы: -

http://i.share.pho.to/f2e45784_o.png

http://i.share.pho.to/56be5f13_o.png

http://i.share.pho.to/f68d550e_o.png

+0

Нет Anant, это не сработало тогда даже. Изменение расширения - это первое, что я сделал – YaddyVirus

+0

Он отлично работает на моем конце –

+0

Это странно ... Позвольте мне перепроверить – YaddyVirus

1

Используйте печенье есть много печенья плагин доступен как cookies.js

Редактировать ---

Я предполагаю, что вы используете печенье плагин .. Я использовал https://github.com/js-cookie/js-cookie

JS Code для этого ---

$(function() { 
    RefreshCode(); 
}) 

function RefreshCode() 
{ 
    var counter = Cookies.get('counter'); 
    if (!counter) { 
     Cookies.set('counter', 1); 
    } else { 
     counter++; 
     Cookies.remove('counter'); 
     Cookies.set('counter', counter); 
    } 
    console.log(Cookies.get('counter')); 
} 

Это полностью рабочий пример для справки ....

HTML код для этого ---

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
</head> 
<body> 

    <script src="jquery-3.1.1.min.js"></script> 
    <script src="js.cookie.js"></script> 
    <script src="CustomCounter.js"></script> 
</body> 
</html> 

Надеется, что это поможет ...

+0

Я пробовал файлы cookie, js. Это не помогло моей цели – YaddyVirus

+0

, как вы ее использовали. Не могли бы вы поделиться своим кодом, что она должна работать. – user7417866

+0

См. Мое редактирование для достижения этого с помощью Cookies ... это полностью работает – user7417866

 Смежные вопросы

  • Нет связанных вопросов^_^