thinkphp實現自動登入

2022-04-05 13:51:45 字數 1467 閱讀 7805

網頁上經常有一些自動登入的checkbox,勾選後,下次進入該**,無需登入,即可執行一些需要登入才能執行的操作。上班無事,用thinkphp做了下

1 下面是乙個很普通的form表單,有乙個checkbox 用來標誌是否選擇了自動登入。

tpl/login/index.html

class='demo'>

2 下面是提交處理方法 lib/action/loginaction.class.php

//

處理登陸表單提交

public

function

dologin()

$m = m('user');

//dump($m);

$username = $this->_post('username');

$password = $this->_post('password');

$where = array('username' => $username

);

//判斷使用者名稱是否存在

if ($m->where($where)->getfield('id'))

header("content-type:text/html;charset=utf-8");

$this->redirect('/index/index', array(), 3, '登陸成功,正在跳轉');}}

else

}

可以看到**整體基本都是使用者名稱密碼的驗證,其中isset($_post['auto'])是勾選自動登入後,寫入cookie。其中encryption()函式是乙個加密函式

3寫乙個action基類,commonaction常用的action都去繼承這個類

class commonaction extends

action }}

if(!isset($_session['uid']))

}}

if(isset($_cookie['auto']) && !$_session['uid']){}這個判斷用來判斷使用者的cookie中有auto值,並且沒有登入時,假如驗證成功,則進一步驗證ip與上次ip是否一致,驗證使用者名稱是否存在於資料庫中,如果驗證通過,則寫入session,由此實現自動登入。其中encryption($_cookie['auto'],1)

是乙個解密函式,將加密後的使用者名稱和密碼解密出來進行驗證。

ps:加密解密函式如下,可以寫在common/common.php作為函式進行使用

/*

* *

* @param string $value 要加密的值

* @param int $type 0加密 1解密 */

function encryption($value,$type=0)

else

if($type==1)

}

ThinkPHP實現登入退出功能

使用者登陸與退出 註冊成功後,將頁面跳轉到login登陸頁面 當資料提交到登陸頁面後,必須先執行驗證碼驗證通過再執行登陸操作 public function checkyzm yzm else public function login elseelse v層 退出登陸 讀取c think.cook...

Thinkphp實現自動驗證和自動完成

thinkphp的自動驗證和自動完成都是根所表單提交的內容來的,對部分資料進行規則驗證和處理後插入到資料庫。1 自動驗證格式 array array 驗證欄位1,驗證規則,錯誤提示,驗證條件,附加規則,驗證時間 array 驗證欄位2,驗證規則,錯誤提示,驗證條件,附加規則,驗證時間 驗證條件 se...

ThinkPHP登入功能的實現方法

登陸功能是php程式設計中常見的功能。本文thinkphp例項主要完成註冊成功後進入首頁,並告訴你是登入使用者的功能。具體實現步驟如下 第一步 在config.php檔案中加上 完整實現 如下 public function insert else throw exception script al...