一個關於PHP的問題
PHP code
$P_S_T = $t_array[0] + $t_array[1];$timestamp = time();session_start();$ll_nowtime = $timestamp ;if (session_is_registered(‘ll_lasttime’)){ $ll_lasttime = $_SESSION['ll_lasttime']; $ll_times = $_SESSION['ll_times'] + 1; $_SESSION['ll_times'] = $ll_times;}else{ $ll_lasttime = $ll_nowtime; $ll_times = 1; $_SESSION['ll_times'] = $ll_times; $_SESSION['ll_lasttime'] = $ll_lasttime;}if (($ll_nowtime – $ll_lasttime)<3){ if ($ll_times>=5){ header(sprintf(“Location: %s”,’http://127.0.0.1′)); exit; }}else{ $ll_times = 0; $_SESSION['ll_lasttime'] = $ll_nowtime; $_SESSION['ll_times'] = $ll_times;}
主要功能:在3秒內連續重新整理頁面5次以上將指向本機 http://127.0.0.1
網上廣為流傳的一份代碼,但是顯然這個代碼是錯的,因為//已經起到的注釋作用,那麼怎麼改這個代碼才能正常使用呢?
不怎麼熟悉PHP,所以請高手更正一下,謝謝,分不多了,只能給30分了。
------解決方案--------------------
引號錯誤吧,1樓的代碼的引號是中文的單引號,不是英文的單引號。。。
------解決方案--------------------
正確代碼:
date_default_timezone_set('PRC');
$timestamp = time();
session_start();
$ll_nowtime = $timestamp ;
if (isset($ll_nowtime)){
$ll_lasttime = $_SESSION['ll_lasttime'];
$ll_times = $_SESSION['ll_times'] + 1;
$_SESSION['ll_times'] = $ll_times;
}else{
$ll_lasttime = $ll_nowtime;
$ll_times = 1;
$_SESSION['ll_times'] = $ll_times;
$_SESSION['ll_lasttime'] = $ll_lasttime;
}
if (($ll_nowtime-$ll_lasttime)<3){
if ($ll_times>=5){
header(sprintf("Location: %s",'http://127.0.0.1'));
exit();
}
}else{
$ll_times = 0;
$_SESSION['ll_lasttime'] = $ll_nowtime;
$_SESSION['ll_times'] = $ll_times;
}
?>
------解決方案--------------------
google一下,這是一個防止cc程式
樓主提供的程式在本地運行報錯,稍微修改了一下,經測試可以運行
session_start(); //開啟session
$timestamp = time();
$ll_nowtime = $timestamp ;
//判斷session是否存在 如果存在從session取值,如果不存在進行初始化賦值
if ($_SESSION){
$ll_lasttime = $_SESSION['ll_lasttime'];
$ll_times = $_SESSION['ll_times'] + 1;
$_SESSION['ll_times'] = $ll_times;
}else{
$ll_lasttime = $ll_nowtime;
$ll_times = 1;
$_SESSION['ll_times'] = $ll_times;
$_SESSION['ll_lasttime'] = $ll_lasttime;
}
//現在時間-開始登入時間 來進行判斷 如果登入頻繁 跳轉 否則對session進行賦值
if(($ll_nowtime - $ll_lasttime) < 3){
if ($ll_times>=5){
header("location:Http://www.baidu.com");
exit;
}
}else{
$ll_times = 0;
$_SESSION['ll_lasttime'] = $ll_nowtime;
$_SESSION['ll_times'] = $ll_times;
}
?>