2017-02-14 41 views
3

我想統計我的網頁「刷新」的次數。然後在頁面上顯示一條消息以及刷新次數。試圖使網頁刷新計數器

例如,在第一次刷新時,會顯示以下語句 - 「1刷新,繼續」等。句子將隨着刷新次數而不斷變化。我至少需要打印10個句子。

最初,我以爲我只是把句子放在一個數組中,然後使用cookie來計算刷新次數,然後根據刷新次數顯示相應的句子。
但是,Cookie存儲字符串而不是整數是個問題。我嘗試使用​​和parseInt()函數,但它們似乎並不工作,並且出於某種原因,使用JavaScript會使我的整個網頁混亂。

然後我想到在PHP中使用會話。他們在第一種方法和我的種類方面也似乎很好(因爲我不喜歡在客戶端做任何事情)。但他們也沒有工作,我的網頁上有一半的印刷聲明。沒有櫃檯,沒什麼。

我已閱讀以前的問題。
我嘗試過cookies。
我已嘗試過會話。計數器

我的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'之上添加'<?php session_start();?>',以便它可以顯示會話數據 –

回答

1

您仍然可以實現您需要使用Cookie的東西,甚至的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

是的 - 在這種情況下用'sessionStorage'替換'localStorage'。語法在其他方面是相同的。我爲你更新了答案 –

+0

我將該js複製到一個單獨的文件中,並添加了一個標題,就像在小提琴中一樣,但沒有在我的頁面上顯示(是的,我通過腳本src鏈接了js) – YaddyVirus

2

PHP不會在.html延期執行。

1.So變化index.html(直到一些變通通過.htaccesURL-rewriting完成),以index.php

2.Also上的index.php頂部添加<?php session_start();?>,以便它可以顯示會話數據。

注: -做這兩個變化後,檢查一次。連續刷新頁面的

屏幕截圖: -

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有很多餅乾的插件提供像cookies.js

編輯---

我假設你正在使用Cookie插件..我用過https://github.com/js-cookie/js-cookie

JS代碼該---

$(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

我試過cookies,js。它不符合我的目的 – YaddyVirus

+0

你如何使用它..可以請你分享你的代碼它應該工作.. – user7417866

+0

看到我的編輯實現這個使用Cookie ...這是完全正常工作 – user7417866