2016-06-09 65 views
-1

我有一個php計數器腳本,它只是從文本文件中讀取訪問者編號,將它加1並將新值寫入同一文本文件。 這當然會計算每個頁面的刷新次數,但我只想計算唯一訪問者數量,而不是統計頁面刷新次數。我怎樣才能做到這一點? 我試着在我的主文件的開始處開始一個會話,然後檢查會話是否存在,但是因爲當文件加載時會話始終存在,計數器永遠不會增加......我可能錯過了某些愚蠢的東西......是否有人指向正確的方向?感謝如何增加一個計數器只有當它是一個新的會話?

+2

*「可有人點我在正確的方向?」 * - 當然= >>> HTTP: //php.net/manual/en/features.sessions.php –

+0

<?PHP 如果(!isset($ _ SESSION)){ \t如果(file_exists( 'counter.txt')) \t { \t \t $ file = fopen('counter.txt','r'); \t \t $ dat = fread($ file,filesize('counter.txt')); \t \t fclose($ file); \t \t $ file = fopen('counter.txt','w'); \t \t fwrite($ file,$ dat + 1); \t \t fclose($ file); \t} \t別的 \t { \t \t $文件=的fopen( 'counter.txt', 'W'); \t \t fwrite($ file,1); \t \t fclose($ file); \t} } echo file_get_contents(「counter.txt」); ?> – marcnyc

+0

這是非常基本的。 'if(!isset($ _ SESSION ['counter'])){$ _SESSION ['counter'] = true;/*更新,增量文件* /}',因此您需要在會話再次增加之前銷燬或終止會話。記得先調用'session_start();'。 – Qirel

回答

3

你可以設置一個標誌,如果它亙古不變的已經存在,那麼你做一些動作:

session_start(); 

if(!isset($_SESSION['started'])){ 
    $_SESSION['started'] = true; 
    //Increment your counter here 
} 
+0

謝謝,國旗是我失蹤的...... – marcnyc

相關問題