2013-07-16 51 views
0

目前,我有以下代碼:如何在X頁面瀏覽量後顯示不同的頁面?

<?php 
session_start(); 

if (!isset($_SESSION['views'])) { 
$_SESSION['views'] = 0; 
} 

$_SESSION['views'] = $_SESSION['views']+1; 

if ($_SESSION['views'] > 100) { 
Execute Code 
} 

?> 

我想這樣經過100頁面瀏覽量的網頁內容發生了變化。

這個代碼的問題是,它不會以同樣的方式對每個用戶都有效。它是單獨計算的,而不是全球所有訪問者。

有沒有辦法實現這個目標?

+1

你必須將其存儲在數據庫或文件 –

+1

使用會話沒有辦法的辦法,如果你想全局設置的東西。會話對每個用戶都是唯一的。您可以改爲將視圖存儲在別的地方。像文件,數據庫等/。 – SachinGutte

+0

數據庫似乎矯枉過正,如果你的應用還沒有一個,並且即使你有一個... – Virus721

回答

0

A $_SESSION是爲每個用戶(而不是整個應用程序)存儲的,因此您應該使用數據庫或文本文件來存儲計數器。

+0

那麼我應該做一個會話,+1一個TXT? –

+0

記住你根本不需要'$ _SESSION'來完成文件功能。請參閱本教程:http://php.about.com/od/finishedphp1/ss/flat_file_count.htm – Pieter

+0

對於MySQL:http://php.about.com/od/finishedphp1/qt/hit_counter.htm – Pieter

0

$_SESSION允許您存儲每個用戶的信息,而不是全局信息。

的最簡單的方法是將存儲的景色在一個文件中的數量,以這樣的代碼:

// read previous count 
$filename = 'hitcount.txt'; 
$handle = fopen($filename, 'r'); 
$views = trim(fgets($handle)) + 1; // read and increment for current view. 
fclose($handle); 

$handle = fopen($filename, 'w'); 
fwrite($handle, $views); // replace previous count 
fclose($handle); 

if($views > 100){ 
// do some stuff 
} 
0
$counter = file_get_contents("counter.txt"); 
$counter++; 
file_put_contents("counter.txt", $counter); 

if ($counter > 100){ 
    print("yey"); 
} 
0
由彼得提到

,RENE

會話是用戶羣因爲它本質上是一個更大版本的cookie。 如果你沒有太多的連接的最簡單和最快的方式是一個簡單的MySQL數據庫 連接,然後某一天更新訪問計數器

UPDATE visit SET visit_counter = visit_counter+1 WHERE date = '$today'; 

其中$今天=日期(「年月日」) ;

只是一個例子(訪問是表 - visit_counter是visit_counter列)

相關問題