A. php中session概念理解知道的請進
根據我個人的理解,session無非就以下三點,不知道對你有沒有幫助
(1)Session:在計算機中,尤其是在網路應用中,稱為「會話」。
(2)Session直接翻譯成中文比較困難,一般都譯成時域。在計算機專業術語中,Session是指一個終端用戶與交互系統進行通信的時間間隔,通常指從注冊進入系統到注銷退出系統之間所經過的時間。
(3)Session解決方案,就是要提供在PHP腳本中定義全局變數的方法,使得這個全局變數在同一個Session中對於所有的PHP腳本都有效。
B. php session原理
在解決問題之前,先來了解一下 PHP SESSION 的工作原理。在客戶端(如瀏覽器)登錄網站時,被訪問的 PHP 頁面可以使用 session_start() 打開 SESSION,這樣就會產生客戶端的唯一標識 SESSION ID(此 ID 可通過函數 session_id() 獲取/設置)。SESSION ID 可以通過兩種方式保留在客戶端,使得請求不同的頁面時,PHP 程序可以獲知客戶端的 SESSION ID;一種是將 SESSION ID 自動加入到 GET 的 URL 中,或者 POST 的表單中,默認情況下,變數名為 PHPSESSID;另一種是通過 COOKIE,將 SESSION ID 保存在 COOKIE 中,默認情況下,這個 COOKIE 的名字為 PHPSESSID。這里我們主要以 COOKIE 方式進行說明,因為應用比較廣泛。
那麼 SESSION 的數據保存在哪裡呢?當然是在伺服器端,但不是保存在內存中,而是保存在文件或資料庫中。默認情況下,php.ini 中設置的 SESSION 保存方式是 files(session.save_handler = files),即使用讀寫文件的方式保存 SESSION 數據,而 SESSION 文件保存的目錄由 session.save_path 指定,文件名以 sess_ 為前綴,後跟 SESSION ID,如:sess_。文件中的數據即是序列化之後的 SESSION 數據了。如果訪問量大,可能產生的 SESSION 文件會比較多,這時可以設置分級目錄進行 SESSION 文件的保存,效率會提高很多,設置方法為:session.save_path="N;/save_path",N 為分級的級數,save_path 為開始目錄。當寫入 SESSION 數據的時候,PHP 會獲取到客戶端的 SESSION_ID,然後根據這個 SESSION ID 到指定的 SESSION 文件保存目錄中找到相應的 SESSION 文件,不存在則創建之,最後將數據序列化之後寫入文件。讀取 SESSION 數據是也是類似的操作流程,對讀出來的數據需要進行解序列化,生成相應的 SESSION 變數。
C. 求簡單明了的php session用戶登入代碼
假定你的資料庫里
用戶表名為:users
用戶欄位為:userName
密碼欄位為:userPwd
用戶提交的信息是以POST方式傳值
用戶名:$_POST['names']
密
碼:$_POST['pwd']
<?php
session_start();//開啟session功能,這個最好放在第一行,因為它前面不能有任何輸出
HOST="xxxxxxx";//mysql地址
USERS="xxxxx";//mysql用戶名
PWD="xxxxxxx";//mysql密碼
DBNAME="xxxx";//mysql里的資料庫名
$conn
=
mysql_connect(HOST,USERS,PWD);//創建連接
mysql_select_db(DBNAME,$conn);//連接指定的資料庫表(mysql里可以建很多資料庫)
mysql_query("SET
NAMES
GB2312",$conn);//校正連接字元集
$result
=
mysql_query("SELECT
userPwd
FROM
`users`
WHERE
userName='{$_POST['names']}'");//查詢指定用戶名($_POST['names'])的密碼,並用一個變數($result)保存結果集
$array=mysql_fetch_assoc($result);//從保存的結果集里提取結果並保存到數組變數($array)里,這個數組的下標和你表裡的欄位名一致
//檢查得到的密碼是否跟用戶提交的密碼一致
if
($_POST['pwd']
==
$array['userPwd'])
{
session_register('sname');//注冊一個session,名為「sname」
$_SESSION['sname']
=
$_POST['names'];//給這個session賦值
}
else
{
echo
"密碼錯誤";
}
累死我了…………
友情提供:www.xms5.com
在你用session的頁面也要開啟session的
session_start();//開啟session功能,這個最好放在第一行,因為它前面不能有任何輸出
也用這個開啟
比如你在A頁面創建的session,要在B頁面調用到$_SESSION['XXXX']
A頁面創建session時要用session_start();放第一行
B也頁調用session時也要用session_start();放第一行的
你最好了A頁面和B頁面在頭部都包含一個PHP文件,再在這個PHP文件里session_start();
不知道你明白我的意思沒有……
如果還有不懂的「HI」消息給我吧……
?>
D. PHP 驗證session是否有效以及生成Session
一般是在建立SESSION的時候將SESSION數據存到資料庫以確保安全!但是在用戶量巨大的時候會影響性能。當然如果你的伺服器性能足夠好,你可以這么做。很多人都是這么做的。
我的建議是將$_SESSION['User_Name']和$_SESSION['webkey']聯系起來!
生成SESSION的時候 將$_SESSION['User_Name']加入一些字元串形成新的字元串後再MD5幾次後得到的字元串作為$_SESSION['webkey'];一般來說如果用戶數據不是很重要(如涉及到金錢等)這樣做是安全的方案!
驗證的時候再重復進行上述動作;這樣的既能保證安全也能節約系統性能!
E. php與session
你可以設置 出現非法操作的時候退出程序 這樣就不會執行下面的語句了,直接在echo "</html>" ; 後面插入 exit; 就行了~~
F. php關於session
你本地測試可以,那就是伺服器嘍,你session_start() 有寫嗎?
G. php中如何使用SESSION
1、在php中使用session,首先要啟動session會話,啟動session會話要使用php內置函數session_start(),如圖所示。
H. 用php實現網頁的登錄功能,請問如何用session 獲得登錄狀態以及登錄的用戶名
session_start();if(!isset($_SESSION['uid'])){ header('Location: login.php'); //未檢測到session信息,重定向到登錄頁面/錯誤頁面}
I. 關於php中的session
如果$_SESSION['這裡面的參數名一樣'] 那麼就會覆蓋原先定義的值
返回什麼類型 完全取決於你存的是什麼,弱變數就是這樣,呵呵
你放的是字元串的取的就是字元串 放的是整型 取出的就是整數
放數組取的就是數組
J. php SESSION 設置和php代碼的問題
<?
error_reporting(2047);
@session_start();
if($_SESSION['sf1']==1) die("24小時只能注冊一次!");
?>
come baby
success1.php
代碼:
<?php
error_reporting(2047);
session_start();
$_SESSION['sf1']=1;
die("你已進入過了");
?>
注意:我加了一句打開錯誤輸出
還加了兩個點