本文實例講述了PHP cookie,session的使用與用戶自動登錄功能實現方法。分享給大家供大家參考,具體如下:
cookie的使用
//生成cookie//注釋:setcookie() 函數必須位于 <html> 標簽之前。//setcookie(name, value, expire, path, domain); //名稱,值,過期時間,有效路徑,有效域名//path,可選;如果路徑設置為 "/",那么 cookie 將在整個域名內有效.如果路徑設置為 "/test/",那么 cookie 將在 test 目錄下及其所有子目錄下有效。默認的路徑值是 cookie 所處的當前目錄。//domain,可選;為了讓 cookie 在 example.com 的所有子域名中有效,您需要把 cookie 的域名設置為 ".example.com"。當您把 cookie 的域名設置為 www.example.com 時,cookie 僅在 www 子域名中有效。默認當前域名。setcookie("user", "Alex Porter", time()+3600);setcookie("userid", "1000569852", time()+3600);//獲取var_dump($_COOKIE);// isset() 函數來確認是否已設置了 cookie:if (isset($_COOKIE["user"])){ echo "Welcome " . $_COOKIE["user"] . "!<br />";}else{ echo "Welcome guest!<br />";}//當刪除 cookie 時,您應當使過期日期變更為過去的時間點。setcookie("user", "", time()-3600);
session的使用
//session特定:可供應用程序中的所有頁面使用;會話信息是臨時的,在用戶離開網站后將被刪除。// 虛擬主機用戶。 設置一個存放目錄,需要可讀寫權限$savePath = getcwd().'/session_save_dir/';//echo $savePath;session_save_path($savePath);//session_start 開啟前。session_id('phpjianlong'); // session_start() 函數之前調用 session_id();命名方式同變量session_start();//存儲和取值$_SESSION['views']=123456789;$_SESSION['name']='php建龍';$_SESSION['array']=array('a','b','c','d');echo "Pageviews=". $_SESSION['views'];var_dump($_SESSION);//判斷是否存在if(isset($_SESSION['views'])){ $_SESSION['views']=$_SESSION['views']+1;}else{ $_SESSION['views']=1; //不存在賦值}echo "Views=". $_SESSION['views'];//session的刪除unset($_SESSION['name']);var_dump($_SESSION);//注釋:session_destroy() 將重置 session,您將失去所有已存儲的 session 數據。session_destroy(); //不帶參數session_start(); //再次開啟session是,重新初始化$_SESSION數組;var_dump($_SESSION);//獲取/設置 當前會話 ID。;瀏覽器會自動生成名為PHPSESSID的cookieecho session_id();session_id('phpjianlong'); // session_start() 函數之前調用 session_id();命名方式同變量
session和cookie的區別:
1、session在服務器,cookie存儲在瀏覽器
2、session可以存儲數組,cookie value只能是字符串
3、session不能設置有效期,cookie可以設置有效期
4、session基于cookie判斷用戶信息,禁用cookie,session受影響不能用。還可以手動通過URL傳值、隱藏表單傳遞Session ID。用文件、數據庫等形式保存Session ID,
URL 形如:http://www.openphp.cn/index.php?PHPSESSID= bba5b2a240a77e5b44cfa01d49cf9669
用戶自動登錄的實現
//方法1: Cookie,在 Cookie 中保存用戶名和密碼(可能是 md5 加密后字符串),并在每次請求頁面的時候進行驗證。如果用戶名和密碼存儲在數據庫,每次都要執行一次數據庫查詢,給數據庫造成多余的負擔。因為客戶端 Cookie 中的信息是可能被用戶查看和修改。不安全舍棄此方法。//方法2:session,用cookie長期保存session id;//系統臨時文件夾找到這個 Session 文件,一般文件名形如:sess_4c83638b3b0dbf65583181c2f89168ec,后面是 32 位編碼后的隨機字符串。用編輯器打開它,看一下它的內容://變量名|類型:長度:值;//設置 Session 的生存期:session_start();// 保存5天$lifeTime = 5 * 24 * 3600;setcookie(session_name(), session_id(), time() + $lifeTime, "/");//之后此瀏覽器在此輸入對應網址,服務器獲取cookie保存的sessionid;根據sessionid的內容判斷,實現自動登錄。
希望本文所述對大家PHP程序設計有所幫助。
新聞熱點
疑難解答
圖片精選