2012-09-27 21 views
0

我有這樣的代碼:會議文件夾PHP的MySQL設置

$username = $_POST["username"]; 
$password = $_POST["password"]; 

if(mysql_num_rows($result80)>0) 
{ 
    $row80 = mysql_fetch_assoc($result80); 
    $_SESSION["loginmng"] = 1; 
    $_SESSION["username"] = $username; 
    $_SESSION["password"] = $password; 
    $fname = $row80["fname"]; 
    $lname = $row80["lname"]; 
    $userid = $row80["id"]; 
} 

和每一件事情是確定的,因爲我tryed呼應會議及其在同一頁(的index.php)工作 現在我有這個檢查:

if(($_SESSION["loginmng"]!=1)||(!isset($_SESSION["username"]))||(!isset($_SESSION["password"]))) 
{ 
    header("Location: index.php"); 
} 

當我把這個到新文件夾: newfolder/index.php文件 檢查是不工作的權利,當我已經登錄,會話設置....當我達到echo $_SESSION["loginmng"]和其他場次,,它的值是空的一樣,沒有會話設置好的和頭跑了......和去索引......我已經把session_start();在第一個PHP太行 我tryed太:

if($_SESSION["loginmng"]!=1) 
{ 
    header("Location: ../index.php"); 
} 

,同樣的事情......就像沒有會話集,可能是什麼問題

+3

你是否100%確定該會話已啓動? 'session_start()'在上面? –

+0

你可以把這兩個文件的所有代碼,以獲得更好的觀點? –

+0

我並不完全瞭解你的問題,但我確實想讓你從一個耗費我許多小時的錯誤中解脫出來。如果你曾經迴應過任何東西,比你不能重定向頭(「Location:...」) – ajon

回答

1

一個PHP session變量用於存儲有關信息,或者更改用戶會話。會話變量包含有關單個用戶的信息,並且可用於一個應用程序中的所有頁面。 PHP會話變量

當您使用應用程序時,打開它,做一些更改,然後關閉它。這很像一個會議。電腦知道你是誰。它知道你何時啓動應用程序以及何時結束。但在互聯網上有一個問題:Web服務器不知道你是誰,你做什麼,因爲HTTP地址不保持狀態。

PHP會話允許您將用戶信息存儲在服務器上供以後使用(即用戶名,購物項目等),從而解決了這個問題。但是,會話信息是臨時的,在用戶離開網站後將被刪除。如果您需要永久存儲,則可能需要將數據存儲在數據庫中。

會話通過爲每個訪問者創建唯一標識(UID)並基於此UID存儲變量。 UID存儲在cookie中或傳播到URL中。 開始PHP會話

在將用戶信息存儲在PHP會話中之前,必須先啓動會話。

注意:session_start()函數必須在<html>標記之前出現。

+0

謝謝你的男人,我解決它之前;) – michael

+0

安全措施(不完全相關你的問題):如果你將用戶的詳細信息作爲用戶名和密碼存儲在會話變量中,請不要以純文本格式存儲它們,而是加密或散列,讓我們說sha1()函數,然後比較/分配哈希值來自數據庫的哈希值。 – bodi0

1

也許你忘了在文件頂部添加session_start();了。

要使會話在每個頁面上開始,您需要在每個頁面上啓動會話。

session_start()創建一個會話或恢復基於經由GETPOST請求通過,或通過cookie傳遞會話標識符的當前一個。