php使用者登陸代碼(限制使用者錯誤登入次數)(1/2)_PHP教程

來源:互聯網
上載者:User
php使用者登陸代碼(限制使用者錯誤登入次數)

php教程使用者登陸代碼(限制使用者錯誤登入次數)

session_start();
include("mysql教程.class.php");
$db=new mysql('localhost', 'root', '', 'flx', 'conn', 'gbk');
// 為方便測試,這裡只是簡單定義了一個特定的使用者,在實際操作中,使用者資訊從資料庫教程中得出;
define('user','admin');
define('pw', 123);
$db->findall('limit_login');
$row=$db->fetch_array();
//print_r($row);
if($_post['submit']){
$username=$_post["username"];
$pw=$_post["pw"];
$_session['time']=time();
/* 錯誤次數超限判斷*/
// 對於登陸出錯超過三次的使用者,如果現在時間,減去開始登陸的時間,小於特定的值時,就不允
許在登陸;
if($username==user){
//這裡使用者可以試著登陸3次,,下面寫為2,是因為頁面重新整理與資料庫的串連不同步,
// 就是說,第二次的錯誤資訊插入資料庫時,這裡擷取的資訊,還是第一次的,實際使用者出錯的
次數已經多一次了;
if($row['login_times']>2){
$current=time();
$passed_time=$current-$row['login_date'];
echo '現在已經過了'.$passed_time.'秒
';
// 設定時間 900秒,在此時間段內,特定使用者不能登陸系統;按
if(($current-$row['login_date'])<900){
//$test_pw=substr(md5(rand()),0,10);
//現在admin (特定使用者)使用者已經登陸錯誤大於3次,那在限定的時間內,
//即使他的密碼輸入正確,也不能在登陸系統;
if($pw==pw){
exit('你密碼輸入錯誤次數大於三次,請在15分鐘後登陸系統!');
}
// 當然,這位使用者輸入的密碼不是正確的密碼,也給出這樣的提示;
if($pw!=pw){
exit('你密碼輸入錯誤次數大於三次,請在15分鐘後登陸系統!');
}
}else{
//此時已經過了限制的時間,這位使用者可以登陸了,在此使用者在登陸之前,要把前次登陸的時間
清零;
$mod_content="`login_times`=0,`login_date`=0";
$condition="`id`=1";
$db->update('limit_login',$mod_content,$condition);
}
}
}

/* 使用者登陸操作*/

if($username&&$pw){
if($username==user&&$pw==pw){
/* 使用者登陸成功,*/
// 更新資料表;表登陸次數和時間,都置零;
$mod_content="`login_times`=0,`login_date`=0";
$condition="`id`=1";
$db->update('limit_login',$mod_content,$condition);
echo '';
}else{
//在第一次出錯時,設定密碼出錯次數為1,把登陸時是session 儲存的時間放入資料庫;
if($row['login_times']==0&&$row['login_date']==0){
$mod_content="`login_times`=1,`login_date`='".$_session['time']."'";
$condition="`id`=1";
$db->update('limit_login',$mod_content,$condition);
}else{
$mod_content="`login_times`=`login_times`+1";
$condition="`id`=1";
$db->update('limit_login',$mod_content,$condition);
}
/* 提示使用者還有幾次機會*/
if($row['login_times']<3){
$row['login_times']++;// 這裡登陸次數加1,和上面的說的原因一樣,是因不能同步串連
資料庫所致;
echo'密碼錯誤!錯誤次數為:'.$row['login_times'].'次
';
$remain_times=3-$row['login_times'];
echo '你還有'.$remain_times.'登陸機會';
}
}
}else{
echo '使用者名稱和密碼不可為空!';
}
}



?>

1 2

http://www.bkjia.com/PHPjc/444885.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/444885.htmlTechArticlephp使用者登陸代碼(限制使用者錯誤登入次數) php教程使用者登陸代碼(限制使用者錯誤登入次數) session_start(); include(mysql教程.class.php); $db=new my...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.