天天看點

網站登陸Cookie是什麼

我們在一些登陸的視窗經常會看到一些“記錄資訊”的複選框,允許使用者記錄他們的使用者名稱及密碼,以便下次不需要再次輸入使用者資訊了。在ColdFusion中我們可以利用Cookies來解決此問題。

在說明此問題之前我們先來看看什麼是Cookie吧。所謂Cookie是一些存儲在浏覽器裡允許你在之後擷取的内容。那麼ColdFusion又是如何定義Cookie及擷取Cookie内容的呢?

定義Cookie:

讀取Cookie:

#cookie.MyCookie#

</cfoutput>

我們在學會了如何定義及讀取Cookie之後我們将利用“Expire”屬性來擴充Cookie設定,這個屬性允許你确定Cookie在多少時間範圍内是有效的,在此教程裡,我們将此值設定為“Never”,因為我們希望Cookie值永遠不過期。

好了,接下來我們開始真正的記錄使用者資訊的曆程。

第一步:我們需要建立一個login.cfm的頁面,這個頁面将接收使用者的使用者名稱及密碼以便登陸到網站,而在此之間我們需要确認Cookie值是否已經存在。為了達到此目标,我們需要進行如下代碼操作:

<!--- 如果UserName的Cookie值已經存在,那麼我們就将此值自動加入Form --->

<cfset username = cookie.username>

<cfelse>

<!--- 如果Cookie值并不存在,那麼我們就設定一個空值到Form的username字段中--->

<cfset username = "">

</cfif>

接下來讓我們來看看Password是否存在于Cookie中吧。其實我們并不建議你儲存密碼到Cookie中,但有些時候你或許需要此功能,我們隻是示例代碼實作而已。

<!--- 密碼的Cookie值是否存在,如果存在則自動加入到Form窗體中 --->

<cfset password = cookie.password>

<cfelse>

<!--- 如果Cookie值并不存在,那麼我們将設定一個空值給這個密碼内容--->

<cfset password = "">

</cfif>

<form action="login_process.cfm" method="post">

    <table width="500" >

        <tr>

            <td width="500" colspan="2"></td>

        </tr>

        <tr>

            <td width="250">使用者名稱:</td>

            <td width="250"><input type="text" value="#username#"></td>

        </tr>

        <tr>

            <td width="250">使用者密碼:</td>

            <td width="250"><input type="password" value="#password#"></td>

        </tr>

        <tr>

            <td width="250">記錄資訊</td>

            <td width="250"><input type="checkbox" value="Yes"

            <cfif IsDefined("cookie.username") OR

IsDefined("cookie.password")> CHECKED</cfif>></td>

        </tr>

        <tr>

            <td width="250"></td>

            <td width="250"><input type="submit" value="Login"></td>

        </tr>

    </table>

</form>

</cfoutput>

在下一個操作頁面login_process.cfm中,我們需要驗證使用者的資訊,我們不光需要驗證使用者的資訊,還需要記憶使用者是否“記錄”他們的資訊。

SELECT ID

FROM MEMBERS

WHERE meber_username = '#FORM.username#'

AND member_password = '#FORM.password#'

</cfquery>

<!--- 如果已經确認使用者,在确實進入系統之前确認使用者是否需要儲存使用者資訊以便下次自動登陸系統 --->

<cfif IsDefined("RememberMe")>

<!---如果确定記錄使用者資訊,那麼我們就需要設定Cookie值 --->

<cfcookie value="#form.username#" expires="NEVER">

<cfcookie value="#form.password#" expires="NEVER">

<cfelse>

<!--- 如果不需要記錄使用者資訊,那麼我們就将重新設定Cookie,并設定它們的過期時間是NOW,即立即過期,這樣也就删除了Cookie内容 --->

<cfcookie value="#form.username#" expires="NOW">

<cfcookie value="#form.password#" expires="NOW">

</cfif>

<!--- 現在你已經記錄了Cookie值,後面的操作就是你之後要對使用者進行的操作内容了--->

</cfif>

瞧,記錄使用者資訊的操作還是十分簡單的是嗎?至于删除Cookie我們還有很多種方法可以進行的哦,你們可以自己再多嘗試一下。 

繼續閱讀