導航:首頁 > 編程語言 > php生成session

php生成session

發布時間:2024-12-06 12:08:23

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的CI框架,如何使用session

裡面有兩種session的使用方法:
1是php的原始的session使用方法,這個很簡單,$_SESSION['name']="name",然後在需要的地方顯示:echo $_SESSION['name'];
2是codeigniter這個框架的一個方法:
下面就詳細講解如何使用這個有點點復雜的方法:
首先,在\ci\application\config下面的config.php文件中找到:$config['encryption_key'] = '';這個裡面隨便填什麼值都可以,但是不能為空。一般是英文啊,不要鑽牛角尖。
接著在\ci\application\config下面的auto.php文件中找到:$autoload['libraries'] = array('');裡面要填寫:$autoload['libraries'] = array('session');或者在適當的地方如control文件夾裡面的相應文件中(一般是在構造方法中)寫:$this->load->library('session');這樣也行。
現在環境配置好了,現在就是寫代碼了:
在需要放入session的地方寫:
$this->session->set_userdata('name','yang');
這樣session裡面就有了值了。
顯示值:
echo $this->session->userdata('name');
如果是array,則:
$newdata = array(
'username' => 'johndoe',
'email' => '[email protected]',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
以下是轉載的別人的詳細的有點廢話的相關知識:
Sessions會在每個頁面載入後開始運行,所以session類必須首先被初始化。

1、您可以在控制器中初始化,也可以在系統中自動載入(譯者註:在autoload.php設定)$autoload['libraries'] = array('session');

2、要在您的控制器構造函數中初始化session類,您可以使用 $this->load->library 函數:$this->load->library('session');一旦被載入, session就可以這樣使用: $this->session。
session類的絕大部分都會在後台運行,所以初始化session時,它session數據會被自動讀取、創建和更新。

Sessions 是怎樣工作的?
需要知道的非常重要的一點就是,session類一旦被初始化,它就會自動運行。對於後面的事情,您可以完全不作理會。正如您將會在下面看到的一樣,您可以正常使用session來工作,甚至還可以添加自己的session數據,而在這一切的過程中,讀、寫和更新的操作都是自動完成的。

當頁面載入後,session類就會檢查用戶的cookie中是否存在有效的session數據。如果session數據不存在(或者已經過期),那麼就會創建一個新的session並把他保存在cookie中。如果session數據存在,那麼他的信息就會被更新,同時cookie也會被同時更新。每次更新都會重新生成session_id的值。

默認情況下, Session Cookie 每隔 5 分鍾才會更新一次,這樣會減少對處理器的負荷。如果你重復的裝載頁面, 你會發現"上次活動"的時間在五分鍾,或多餘五分鍾的時候才會變化,也就是 cookie上次被寫入的時間。 這個時間可以通過設置 application/config/config.php 文件里的 $config['sess_time_to_update'] 行來改變。

③ php session是怎樣生成的

session是在伺服器端保持用戶會話數據的一種方法,對應的cookie是在客戶端保持用戶數據。HTTP協議是一種無狀態協議,伺服器響應完之後就失去了與瀏覽器的聯系,最早,Netscape將cookie引入瀏覽器,使得數據可以客戶端跨頁面交換,那麼伺服器是如何記住眾多用戶的會話數據呢?
首先要將客戶端和伺服器端建立一一聯系,每個客戶端都得有一個唯一標識,這樣伺服器才能識別出來。建議唯一標識的方法有兩種:cookie或者通過GET方式指定。默認配置的PHP使用session的時會建立一個名叫」PHPSESSID」的cookie(可以通過php.ini修改session.name值指定),如果客戶端禁用cookie,你也可以指定通過GET方式把session id傳到伺服器(修改php.ini中session.use_trans_sid等參數)。
我們查看伺服器端session.save_path目錄會發現很多類似sess_vv9lpgf0nmkurgvkba1vbvj915這樣的文件,這個其實就是session id 「vv9lpgf0nmkurgvkba1vbvj915″對應的數據。真相就在這里,客戶端將session id傳遞到伺服器,伺服器根據session id找到對應的文件,讀取的時候對文件內容進行反序列化就得到session的值,保存的時候先序列化再寫入。
事實就是這樣,所以如果伺服器不支持session或者你想自定義session,完全可以DIY,通過PHP的uniqid生成永不重復的session id,然後找個地方存儲session的內容即可,你也可以學flickr把session存儲在MySQL資料庫中。

④ php CI框架,一個function生成session,另一個調用session為空,求大神指點,謝謝!

CI框架的session是不可靠的, 他把session經過序列化或加密後,保存在cookie里;
某些原因, 在並發連接時, 比如IE瀏覽器, CI的session類就會重新生成 session_id; 導致原有的session丟失; 建議採用PHP原生session(即保存在session文件或memecache);

⑤ PHP中Session ID的生成演算法是唯一的嗎

雖然他的那個生成演算法是隨機的,但是是唯一的。

閱讀全文

與php生成session相關的資料

熱點內容
ug如何啟動伺服器 瀏覽:444
csgo防抖動命令 瀏覽:960
如何弄到手機app頁面的源碼 瀏覽:441
androidwindows7破解版 瀏覽:363
解壓視頻動畫怎麼拍 瀏覽:748
連漲啟動源碼 瀏覽:163
小奔運動app網路異常怎麼回事 瀏覽:449
php開啟壓縮 瀏覽:305
伺服器主機如何設置啟動 瀏覽:284
linux配置網路命令 瀏覽:776
一張照片怎麼製作視頻app 瀏覽:910
pythonweb和php 瀏覽:978
電腦伺服器地址ip地址 瀏覽:823
對矩陣壓縮是為了 瀏覽:912
setfacl命令 瀏覽:175
linux子系統中斷 瀏覽:343
linux查看進程ps 瀏覽:227
知識庫系統php 瀏覽:625
小波變換壓縮圖像python 瀏覽:153
阿里巴巴程序員怎麼月入百萬 瀏覽:175