2011-10-13 65 views
0

爲什麼SESSION變量不能添加到數據庫中? 我只收到我的分數值,但沒有用戶名。 注: Session變量的定義如下:爲什麼不添加到我的數據庫?

$_SESSION['username'] = $_POST[username]; 

這是我遇到的麻煩的部分:

session_start(); 
$user = $_SESSION['username']; 
$con = mysql_connect("something.hosting.com","username","password"); 
if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("quiz", $con); 

$sql=" 
INSERT INTO members (
    Name, Score 
) VALUES (
    '$user', '$max_value' 
) 
"; 

if (!mysql_query($sql,$con)) 
{ 
    die('Error: ' . mysql_error()); 
} 

echo "1 record added"; 

mysql_close($con); 
  1. 是的,我也開始會話。
  2. 當我嘗試在第二頁上回顯變量時,它確實輸出正確。
  3. 沒有嘗試的mysql逃脫
+0

你已經開始用''在session_start會話()''你指定''$ _SESSION''變量之前? – CheeseSucker

+0

如果你回顯SQL並嘗試手動執行它,你會得到任何錯誤嗎? – sdleihssirhc

+3

記住要逃避您的輸入變量以防止SQL注入。 ''user = mysql_real_escape_string($ _ SESSION ['username']);'' – CheeseSucker

回答

0

我相信你設置$ _SESSION [ '用戶名']不正確。獲取$ _POST值時,您已經省略了引號。

$_SESSION['username'] = $_POST[username]; 

應該

$_SESSION['username'] = $_POST['username']; 
+1

不會PHP在該上下文中將該用戶名解釋爲字符串字面值? http://codepad.org/DZvjCUtX(不是說這是一個好主意,但應該正常工作...) –

+0

當我改變它時,它給了我這個錯誤: 服務器遇到了一個意外的情況,阻止它履行請求。 該腳本有錯誤或者它沒有產生任何輸出。如果出現錯誤,您應該能夠在錯誤日誌中看到它。 –

+0

我從來沒有見過這樣做過。我沒有意識到它會將用戶名解釋爲字符串。感謝您的鏈接。我想這是可行的,儘管這可能是我不推薦使用的東西。 – Kibbee

相關問題