PHP中session使用方法詳解
Session指的就是用户在瀏覽某個網站時,從進入網站到瀏覽器關閉所經過的這段時間,也就是用户瀏覽這個網站所花費的時間。從上述的定義中我們可以看到,Session實際上是一個特定的時間概念。跟隨小編去看看吧!
一般來説,在網站上某一個頁面中的變量(指服務器端變量,下同)是不能在下一頁中用的,有了session就好辦了。session中註冊的變量可以作為全局變量使用。這樣我們就可以將session用於用户身份認證,程序狀態記錄,頁面之間參數傳遞。
在PHP3版本中是如何實現session的'?
php3本身是沒有實現session功能的,我們只有用其他的方法來實現,這其中最有名的要算phplib了。phplib最基本的功能包括用户認證、Session管理、權限及數據庫的抽象化。下面我們就講述一下如何用phplib實現session。
1、首先安裝phplib(環境為win2000+php3.0.16+Apache1.3.12+phplib7.2c+mysql3.23.21 for win32)
首先將phplib解開,裏面有一個"php"目錄,將這個目錄拷貝到Apache的安裝目錄下。例如:Apache安裝在d:Apache 目錄下,那麼就將"php"目錄拷貝到d:Apache,並將phplib目錄的pages目錄下(不包括目錄本身)的文件和目錄一起拷貝到d:Apachehtdocs下。
phplib的類庫需要根據系統進行初始化,可能需要修改文件,其中包含着一些基本參數,可以根據自己機器的實際情況來進行修改。
將d:Apachephp文件中的一段程序改為如下樣子:
if (!isset($_PHPLIB) or !is_array($_PHPLIB)) {
$_PHPLIB["libdir"] = "d:/Apache/php/"; //放phplib下php目錄的路徑
}
修改d:Apachephp文件:
class DB_Example extends DB_Sql {
var $Host = "localhost"; //mysql數據庫所在主機名
var $Database = "test"; //數據庫名
var $User = "root"; //數據庫用户名
var $Password = "1234567"; //數據庫用户密碼
}
最後根據phplib目錄下的stuff子目錄中的create_l文件生成初始表。
由於每一個使用phplib的頁面首先必須可以找到運行phplib所必需的類庫文件,我們可以在中設置auto_prepend變量來支持,phplib中包含一個文件,並將auto_prepend指定為"d:/Apache/php/"(帶引號)後,各頁面就會自動包含phplib類庫,我們還可以將phplib類庫所在目錄加進include變量中,以便可以找到這些文件。
2、調用page_open()函數
在每一個使用phplib的頁面中,必須首先調用page_open函數進行初始化,例如:
<?php
page_open(array("sess" => "Test_Session"));
?>
數組變量(sess)用來初始化一些狀態保存對象,這裏應該注意:必須使用phplib內置名(sess),這些內置名是在中所定義的.。
因為phplib使用了Cookies來保存狀態信息,所以page_open()函數必須在頁面內容輸出到瀏覽器之前被調用。php腳本最後應以page_close()結束,這將會將有關狀態數據寫回到數據庫中,否則變量會丟失。
3、具體使用。
註冊一個變量後即可在隨後的頁面中使用它,直至session結束。方法:
<?php $sess->register( "varname"); ?>
注意,這裏的varname不是變量值,而是變量名,可以先指定變量名,隨後再賦值。你在某個頁面中可以改變變量的值,隨後的頁面訪問該變量時會得到改變後的值。變量的類型是多樣的,可以是一個字符串,一個數字,一個數組。舉例來説明:
第一頁:
<?php
page_open(array("sess" => "Test _Session"));
$sess->register( "welcome"); //註冊變量$welcome,注意不需要加$
$welcome="Hello,PHP world!";
……
page_close();
?>
第二頁:
<?php
page_open();//開始session
echo $welcome;//顯示第一頁中定義的$welcome
page_close();//保存狀態信息
?>
註冊完一個變量,當頁面最後調用page_close()函數後,各個session變量會被寫回到數據庫中。如果忘記調用page_close()函數的話,變量就不會被寫回數據庫,這樣將出現不可預知的後果。當變量被使用完畢,不再需要用到時,可以調用以下函數將變量刪除:
<?php
page_open(array("sess" => "Test _Session"));
……
$sess->unregister( "variable_name");
……
page_close();
?>
在PHP4版本中是如何實現session的?
php4的session也靠cookies保存session id,用文件系統保存變量(默認情況下),因此,它的session變量不能保存對象。當然也可以將session保存在數據庫中。
在php4中有關session的函數很多(詳見配置一文),通常情況下我們只需要調用三個函數即可:sesssion_start()、session_register()、session_is_registered()。
在需要用到session的每一頁的最開始處調用session_start()函數, 例如:
<?session_start()?>
<html><body>
<?
$welcome="hello world !";
session_register("welcome");//註冊$welcome變量,注意沒有$符號
if(session_is_registered("welcome"))//檢查$welcome變量是否註冊
echo "welcome變量已經註冊了!";
-
用PHP實現文件上傳二法
PHP(HypertextPreprocessor)是一種HTML內嵌式的語言(類似IIS上的ASP)。而PHP獨特的語法混合了C、Java、Perl以及PHP式的新語法。它可以比CGI或者Perl更快速的執行動態網頁。除此之外,用PHP寫出來的Web後端CGI程序,可以很輕易的移植到不同的系統平台上。我們在做...
-
PHP常用開發技巧
PHP開發常用技巧能使你在開發過程中快而有效.以下就是小編精心推薦PHP常用開發技巧,希望對大家有幫助!1使用dowhile避免多層if語句嵌套我們直接舉例説明:實現方式①if($name=='hedong'){if($sex=='male'){if($major=='PHP'){$ret='...
-
PHP程序員基本要求和必備技能
PHP程序員有什麼必備知識呢?以下是本站小編精心為大家整理的PHP程序員基本要求和必備技能,希望對大家成為程序員有所幫助!更多內容請關注應屆畢業生網!一名PHP程序員的基本要求:1、精通html、CSS、JS等網站前端技術。2、掌握PHP編程技術。3、瞭解Linux及Apache、...
-
tp搜索時首頁分頁和搜索頁保持條件分頁的方法
在做搜索查詢時突然發現在首頁用的`分頁代碼在搜索頁使用時出現錯誤,首頁分頁代碼(代碼中標註start與end部分為分頁代碼),下面是由本站小編為大家整理的Thinkphp搜索時首頁分頁和搜索頁保持條件分頁的方法,喜歡的可以收藏一下!瞭解更多詳情資訊,請關注應屆畢業生...