2012-08-27 476 views
-1

我有這樣的代碼,我試圖以獲取用戶的畫廊ID創建一個會話..無法登錄使用會話變量

的問題是,如果我使用$ _SESSION [「用戶名」 ]它的工作原理,但是這樣不行...請問你能檢查一下這有什麼問題嗎?

謝謝!

mysql_connect($host, $user, $pass); 
mysql_select_db($database); 
$username = mysql_real_escape_string($_POST['username']); 
$password = md5($_POST['password']); 

$result = mysql_query("SELECT * FROM $table WHERE username = '$username' AND password = '$password' 
"); 
while ($rows = mysql_fetch_array($result)) { 

if(mysql_num_rows($result)) 
{ 
$rows['gal_id']=$gal_id; 
    session_start(); 
    $_SESSION['gal_id'] = htmlspecialchars($gal_id); 
} 
else 
{ 
    // Invalid username/password 
    echo '<p><strong>Error:</strong> Invalid username or password.</p>'; 
} 
+1

你確定你在'session_start();'上面有* no *輸出,因爲它會把它連接起來。 – Fluffeh

+0

肯定..我沒有什麼高於session_start() – Alb

+1

問題標題說使用$ _SESSION不會讓你登錄。問題內容說$ _SESSION確實有效,但$ _POST不會。你能否澄清一下實際問題是什麼? – andrewsi

回答

3

改變這一點:

$rows['gal_id']=$gal_id; 

$gal_id=$rows['gal_id']; 

編輯:我不認爲它需要一個furhter解釋

+0

嘿,謝謝,這使得登錄成爲可能......請告訴我,如何,當我進入頁面,然後,我可以'檢索$ _SESSION [ 'gal_id'],沒有輸出。 – Alb

+1

你必須首先啓動會話來訪問會話變量:'session_start();' –

2

$rows['gal_id']=$gal_id;您不能設置一個數據庫行的值這樣做。另外它從來沒有被進一步引用。

session_start();在大多數情況下,這應該位於頁面頂部。

$_SESSION['gal_id'] = htmlspecialchars($gal_id); $ gal_id從來沒有在你的代碼中設置爲任何東西,它不存在。

+0

嘿謝謝..所以我需要的是獲得用戶的$ gal_id這就是爲什麼我插入它就像那樣..你能告訴我怎麼做嗎?..謝謝! – Alb

+0

看@Imre L的答案。但是,爲了將來的使用,您應該使用phpmyadmin或類似的東西來查看數據庫並查看列的名稱。從那裏你可以讀取與他所說的相似的值。 – jett