php 依據(jù)session與cookie用戶登錄狀態(tài)操作類,sessioncookie_PHP教程
Jul 12, 2016 am 08:52 AMphp 依據(jù)session與cookie用戶登錄狀態(tài)操作類,sessioncookie
1、用戶登錄狀態(tài)操作類UserLogin
?

<?<span>php </span><span>final</span> <span>class</span><span> UserLogin { </span><span>public</span> <span>function</span><span> __construct() { } </span><span>public</span> <span>static</span> <span>function</span><span> getUserInfo() { </span><span>if</span> (<span>isset</span>(<span>$_COOKIE</span>["user_id"])&&<span>$_COOKIE</span>["user_id"]&&(<span>trim</span>(<span>$_COOKIE</span>["user_id"])!=""<span>)) { </span><span>if</span> (<span>isset</span>(<span>$_SESSION</span>["USER_INFO"<span>])) </span><span>return</span> <span>$_SESSION</span>["USER_INFO"<span>]; </span><span>$dao</span> = <span>new</span><span> UserDao(); </span><span>$user</span> = <span>$dao</span>->find(<span>$_COOKIE</span>["user_id"<span>]); </span><span>if</span> (<span>$user</span><span>) { </span><span>$_SESSION</span>["USER_INFO"] = <span>$user</span><span>; </span><span>setcookie</span>("docloud_sid", <span>session_id</span>(), <span>time</span>() + 36000<span>); </span><span>setcookie</span>("user_id", <span>$_COOKIE</span>["user_id"], <span>time</span>() + 36000<span>); </span><span>if</span> (<span>array_key_exists</span>("selected_prj_id", <span>$_COOKIE</span><span>)) </span><span>setcookie</span>("selected_prj_id", <span>$_COOKIE</span>["selected_prj_id"], <span>time</span>() + 36000<span>); </span><span>if</span> (<span>array_key_exists</span>("selected_class_id", <span>$_COOKIE</span><span>)) </span><span>setcookie</span>("selected_class_id", <span>$_COOKIE</span>["selected_class_id"], <span>time</span>() + 36000<span>); </span><span>if</span> (<span>array_key_exists</span>("selected_image_id", <span>$_COOKIE</span><span>)) </span><span>setcookie</span>("selected_image_id", <span>$_COOKIE</span>["selected_image_id"], <span>time</span>() + 36000<span>); </span><span>if</span> (<span>array_key_exists</span>("test_image_ids", <span>$_COOKIE</span><span>)) </span><span>setcookie</span>("test_image_ids", <span>$_COOKIE</span>["test_image_ids"], <span>time</span>() + 36000<span>); </span><span>if</span> (<span>array_key_exists</span>("upload_image_ids", <span>$_COOKIE</span><span>)) </span><span>setcookie</span>("upload_image_ids", <span>$_COOKIE</span>["upload_image_ids"], <span>time</span>() + 36000<span>); </span><span>return</span> <span>$user</span><span>; } } self</span>::<span>clearCookie(); </span><span>return</span> <span>null</span><span>; } </span><span>public</span> <span>static</span> <span>function</span> setUserInfo(<span>$userInfo</span><span>) { </span><span>$_SESSION</span>["USER_INFO"] = <span>$userInfo</span><span>; </span><span>setcookie</span>("docloud_sid", <span>session_id</span>(), <span>time</span>() + 36000<span>); </span><span>setcookie</span>("user_id", <span>$userInfo</span>->getId(), <span>time</span>() + 36000<span>); } </span><span>public</span> <span>static</span> <span>function</span><span> isLogin() { </span><span>if</span> (self::<span>getUserInfo()) { </span><span>return</span> <span>true</span><span>; } </span><span>return</span> <span>false</span><span>; } </span><span>public</span> <span>static</span> <span>function</span><span> delUserInfo() { self</span>::<span>clearCookie(); </span><span>session_destroy</span><span>(); } </span><span>private</span> <span>static</span> <span>function</span><span> clearCookie() { </span><span>setcookie</span>("docloud_sid", "", <span>time</span>() - 36000<span>); </span><span>setcookie</span>("user_id", "", <span>time</span>() - 36000<span>); </span><span>setcookie</span>("selected_prj_id", "", <span>time</span>() - 36000<span>); </span><span>setcookie</span>("selected_class_id", "", <span>time</span>() - 36000<span>); </span><span>setcookie</span>("selected_image_id", "", <span>time</span>() - 36000<span>); </span><span>setcookie</span>("test_image_ids", "", <span>time</span>() - 36000<span>); </span><span>setcookie</span>("upload_image_ids", "", <span>time</span>() - 36000<span>); } } </span>?>

2、在用戶輸入用戶名、密碼處調(diào)用來(lái)做相關(guān)判定

<?<span>php </span><span>require_once</span> 'Init.php'<span>; </span><span>//</span><span> if logged in, logout</span> <span>if</span> (UserLogin::isLogin() && <span>$_COOKIE</span>["user_id"]==1<span>) { UserLogin</span>::<span>delUserInfo(); } </span><span>else</span> <span>if</span> (UserLogin::<span>isLogin()){ Utils</span>::redirect('welcome'<span>); } </span><span>$username</span> = <span>null</span><span>; </span><span>$password</span> = <span>null</span><span>; </span><span>$msg</span> = ""<span>; </span><span>if</span> (<span>isset</span>(<span>$_POST</span>['username']) && <span>isset</span>(<span>$_POST</span>['password'<span>])) { </span><span>$username</span> = <span>addslashes</span>(<span>trim</span>(<span>stripslashes</span>(<span>$_POST</span> ['username'<span>]))); </span><span>$password</span> = <span>addslashes</span>(<span>trim</span>(<span>stripslashes</span>(<span>$_POST</span> ['password'<span>]))); </span><span>//</span><span> validate</span> <span>$errors</span> = LoginValidator::validate(<span>$username</span>, <span>$password</span><span>); </span><span>if</span> (<span>empty</span>(<span>$errors</span><span>)) { </span><span>//</span><span> save</span> <span>$dao</span> = <span>new</span><span> UserDao(); </span><span>$user</span> = <span>$dao</span>->findByName(<span>$username</span><span>); </span><span>$last_login_ip</span> = Utils::<span>getIpAddress(); </span><span>$user</span>->setLastLoginIp(<span>$last_login_ip</span><span>); </span><span>$now</span> = <span>new</span><span> DateTime(); </span><span>$user</span>->setLastLoginTime(<span>$now</span><span>); </span><span>$dao</span>->save(<span>$user</span><span>); UserLogin</span>::setUserInfo(<span>$user</span><span>); Flash</span>::addFlash('登錄成功!'<span>); Utils</span>::redirect('welcome'<span>); } </span><span>foreach</span> (<span>$errors</span> <span>as</span> <span>$e</span><span>) { </span><span>$msg</span> .= <span>$e</span>->getMessage()."<br>"<span>; } } </span>?>

?
?
?
?

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版
神級(jí)代碼編輯軟件(SublimeText3)

Cookie通常存儲(chǔ)在瀏覽器的Cookie文件夾中的,瀏覽器中的Cookie文件通常以二進(jìn)制或SQLite格式存儲(chǔ),如果直接打開(kāi)Cookie文件,可能會(huì)看到一些亂碼或無(wú)法讀取的內(nèi)容,因此最好使用瀏覽器提供的Cookie管理界面來(lái)查看和管理Cookie。

電腦上的Cookie存儲(chǔ)在瀏覽器的特定位置,具體位置取決于使用的瀏覽器和操作系統(tǒng):1、Google Chrome, 存儲(chǔ)在C:\Users\YourUsername\AppData\Local\Google\Chrome\User Data\Default\Cookies中等等。

cookie工作原理涉及到服務(wù)器發(fā)送Cookie、瀏覽器存儲(chǔ)Cookie以及瀏覽器對(duì)Cookie的處理和存儲(chǔ)。詳細(xì)介紹:1、服務(wù)器發(fā)送Cookie,服務(wù)器會(huì)向?yàn)g覽器發(fā)送一個(gè)包含Cookie的HTTP響應(yīng)頭。這個(gè)Cookie包含了一些信息,如用戶的身份認(rèn)證、偏好設(shè)置或購(gòu)物車內(nèi)容等,瀏覽器接收到這個(gè)Cookie后,會(huì)將它存儲(chǔ)在用戶的計(jì)算機(jī)上;2、瀏覽器存儲(chǔ)Cookie等等。

cookie泄漏的危害有導(dǎo)致個(gè)人身份信息被盜竊、個(gè)人在線行為被追蹤、賬戶被盜等。詳細(xì)介紹:1、個(gè)人身份信息被盜竊,例如姓名、電子郵件地址、電話號(hào)碼等,這些信息可能被不法分子用于進(jìn)行身份盜竊、欺詐等違法活動(dòng);2、個(gè)人在線行為被追蹤,通過(guò)分析cookie中的數(shù)據(jù),不法分子可以了解用戶的瀏覽歷史、購(gòu)物偏好、興趣愛(ài)好等;3、賬戶被盜,繞過(guò)登錄驗(yàn)證,直接訪問(wèn)用戶的賬號(hào)等等。

document.cookie獲取不到的解決辦法:1、瀏覽器的隱私設(shè)置;2、Same-origin policy;3、HTTPOnly Cookie;4、JavaScript代碼錯(cuò)誤;5、Cookie不存在或過(guò)期;6、跨域問(wèn)題;7、查看器模式;8、服務(wù)器問(wèn)題;9、JavaScript執(zhí)行時(shí)機(jī);10、檢查 console log等。

手機(jī)上的Cookie存儲(chǔ)在移動(dòng)設(shè)備的瀏覽器應(yīng)用程序中:1、在iOS設(shè)備上,Cookie存儲(chǔ)在Safari瀏覽器的Settings -> Safari -> Advanced -> Website Data中;2、在Android設(shè)備上,Cookie 存儲(chǔ)在Chrome瀏覽器的Settings -> Site settings -> Cookies中等等。

清除cookie產(chǎn)生的影響有重置個(gè)性化設(shè)置和偏好、影響廣告體驗(yàn)、破壞登錄狀態(tài)和記住密碼功能。詳細(xì)介紹:1、重置個(gè)性化設(shè)置和偏好,如果清除了cookie,購(gòu)物車將被重置為空,需要重新添加商品,同樣清除cookie還會(huì)導(dǎo)致在社交媒體平臺(tái)上的登錄狀態(tài)丟失,需要重新輸入用戶名和密碼;2、影響廣告體驗(yàn),如果清除了cookie,網(wǎng)站將無(wú)法了解我們的興趣和偏好,會(huì)展示無(wú)關(guān)的廣告等等。

在日常使用計(jì)算機(jī)與互聯(lián)網(wǎng)的過(guò)程中,我們經(jīng)常會(huì)接觸到cookie。cookie是一種小型的文本文件,它保存了我們?cè)诰W(wǎng)站上的訪問(wèn)記錄、偏好設(shè)置和其他信息。這些信息可以被網(wǎng)站使用,以便更好地為我們提供服務(wù)。但是有時(shí)候,我們需要查找cookie的信息,來(lái)找到我們要的內(nèi)容。那么我們?cè)撊绾卧跒g覽器中查找cookie呢?首先,我們需要了解cookie的存在位置。在瀏覽器中
