⑴ php登錄後生成session怎麼弄
登陸頁index.php
<?PHP
if(isset($_POST['submit'])&&isset($_POST['submit'])=='確定')
{
if($_POST['user']=='user'&&$_POST['pwd']=='pwd')
{
session_start();//打開session
$_SESSION["user"]=$_POST['user'];//新建一個session
echo'登陸成功';
}
else
echo'用戶名或密碼錯誤!';
}
else
{
echo'<formact=""method="post">';
echo'用戶名:<inputname="user"type="text"/>';
echo'密碼:<inputname="pwd"type="password"/>';
echo'<inputtype="submit"name="submit"value="確定"/>';
echo'</form>';
}
?>
判斷是否登陸頁add.php
<?php
session_start();
if($_SESSION["user"]==null)
{
echo"請登陸";
echo"<script>location.href='index.php';</SCRIPT>";
returnfalse;
}
else
{
echo"以登陸";
echo"<ahref='esc.php'>點擊退出</a>";
}
?>
退出頁esc.php
<?php
session_start();
session_destroy();
echo"<script>alert('退出成功!');this.location.href='index.php';</SCRIPT>";
?>
⑵ php中$_session[]是什麼意思
使用php應用session時,將session中的數據存儲在伺服器上,然後通過客戶端傳來的sessionid識別客戶端的信息,並提取信息。
php中的session的常用操作:session的寫入、讀取、注冊與刪除。
session的開始
標記session使用開始的函數是session_start,session_start函數用於初始化session變數。語法如下:
session_start();
返回值為true。
session的寫入和讀取
在php中,session的使用是通過預定義數組$_session的調用和讀取來完成。
在網站的頁面中,在注冊頁面對$_session數組進行賦值,在其他的頁面中對$_session數組進行讀取。
注冊頁面中的session,例如:
?php
session_start();
$_session['keyword']=
"php";
?
其他頁面中的session,例如:
?php
session_start();
echo
$_session['keyword'];
?
依次運行,結果是:
php
⑶ PHP中使用類自定義session ,搶奪控制權時的使用__CLASS__設置參數的用法
session_set_save_handler 是表示自定義session的處理方式,否則則使用php內置session處理
(__CLASS__,'open') 是指各個處理方法
open(string $savePath, string $sessionName)
open 回調函數類似於類的構造函數, 在會話打開的時候會被調用。 這是自動開始會話或者通過調用session_start() 手動開始會話 之後第一個被調用的回調函數。 此回調函數操作成功返回 TRUE,反之返回FALSE。
close()
close 回調函數類似於類的析構函數。 在 write 回調函數調用之後調用。 當調用 session_write_close() 函數之後,也會調用 close 回調函數。 此回調函數操作成功返回 TRUE,反之返回 FALSE。
read(string $sessionId)
如果會話中有數據,read 回調函數必須返回將會話數據編碼(序列化)後的字元串。 如果會話中沒有數據,read 回調函數返回空字元串。
在自動開始會話或者通過調用 session_start() 函數手動開始會話之後,PHP 內部調用 read 回調函數來獲取會話數據。 在調用 read 之前,PHP 會調用 open 回調函數。
read 回調返回的序列化之後的字元串格式必須與 write 回調函數保存數據時的格式完全一致。 PHP 會自動反序列化返回的字元串並填充 $_SESSION 超級全局變數。 雖然數據看起來和 serialize() 函數很相似, 但是需要提醒的是,它們是不同的。 請參考: session.serialize_handler。
write(string $sessionId, string $data)
在會話保存數據時會調用 write 回調函數。 此回調函數接收當前會話 ID 以及 $_SESSION 中數據序列化之後的字元串作為參數。 序列化會話數據的過程由 PHP 根據 session.serialize_handler 設定值來完成。
序列化後的數據將和會話 ID 關聯在一起進行保存。 當調用 read 回調函數獲取數據時,所返回的數據必須要和 傳入 write 回調函數的數據完全保持一致。
PHP 會在腳本執行完畢或調用 session_write_close() 函數之後調用此回調函數。 注意,在調用完此回調函數之後,PHP 內部會調用 close 回調函數。
Note:
PHP 會在輸出流寫入完畢並且關閉之後 才調用 write 回調函數, 所以在 write 回調函數中的調試信息不會輸出到瀏覽器中。 如果需要在 write 回調函數中使用調試輸出, 建議將調試輸出寫入到文件。
destroy($sessionId)
當調用 session_destroy() 函數, 或者調用 session_regenerate_id() 函數並且設置 destroy 參數為 TRUE 時, 會調用此回調函數。此回調函數操作成功返回 TRUE,反之返回 FALSE。
gc($lifetime)
為了清理會話中的舊數據,PHP 會不時的調用垃圾收集回調函數。 調用周期由 session.gc_probability 和session.gc_divisor 參數控制。 傳入到此回調函數的 lifetime 參數由 session.gc_maxlifetime 設置。 此回調函數操作成功返回 TRUE,反之返回 FALSE。
create_sid()
當需要新的會話 ID 時被調用的回調函數。 回調函數被調用時無傳入參數, 其返回值應該是一個字元串格式的、有效的會話 ID。