2015-12-04 13 views
0

一位新手在這裏,希望有人能幫助我?

我想要做的就是在$ _SESSION中存儲更多的一個單詞。我已經完成了MySQL查詢以從數據庫中檢索成員名稱,並返回「Mr Brown」。然後,我已將$ memberName存儲在這樣的會話中:

$_SESSION['MemberName'] = $memberName; 

如果我直接回應,它確實給了我「布朗先生」。 但是,如果我重定向到另一個頁面(header('Location:../memberIndex.php');)它不會被存儲!如果$ memberName是「Bob」這樣的單詞,它就可以正常工作,但只要有空格,它就不會轉移。其他變量存儲好,因爲有ID號等,它只是這一個?任何人都可以幫忙嗎?我搜索了很多年,我看不到任何可以讓我將兩個或更多單詞放入$ _SESSION變量的內容! ...幫幫我!

<? 
session_start(); 

$HTTP_POST_VARS["submit"]; 
$Username = $_POST['username']; 
$Password = $_POST['password']; 

$query = "SELECT * FROM MemberLogin WHERE username = '$Username' AND password = '$Password'"; 

$result = mysql_query($query); 

while ($row = mysql_fetch_array($result)) 
{ 
    extract($row); 
    $_SESSION['MemberID'] = $id; 
    $_SESSION['MemberName'] = $memberName; 

    //echo $_SESSION['MemberName']; 

    header('Location: ../memberIndex.php') ; 
} 

好了,更新的位。我剛剛嘗試過另一個腳本:

<? 
session_start(); 

$_SESSION['MemberName'] = "Matt Brown"; 

//echo $_SESSION['MemberName']; 

header('Location: testSession2.php') ; 

?> 

而當它轉移到testSession2.php時,它的工作原理! 那麼區別是什麼?我哪裏錯了?如果我將_SESSION分配給「Matt Brown」,那就好了。但是,如果我將帶有「Matt Brown」的$ memberName的_SESSION分配給它,它不會?!?哦,我很困惑!

+4

您可以存儲陣列在$ _SESSION變量。你有沒有設置session_start();在你的文件的頂部? – Ionut

+0

是的,對不起,它在每一頁的開頭。 – Origination

+0

'「布朗先生」 - 是一個字符串嗎?這應該**工作**沒有任何問題。發佈一個MCVE。 –

回答

0

嘗試在$雙引號中包裝$ memberName。不知道這是否會工作。

此外,使用PDO,而不是mysql擴展,它是更安全:http://code.tutsplus.com/tutorials/why-you-should-be-using-phps-pdo-for-database-access--net-12059

+0

謝謝!我確實認爲我仍然使用'老方法',但是不幸的是沒有時間去學習任何新的方法。我會嘗試PDO,因爲它仍然沒有它! – Origination

+0

PDO非常易於使用,並附帶任何打包的PHP安裝。如果你要寫很多數據庫驅動的代碼,我強烈建議你讓自己熟悉它。另外,基本的mysql_方法在PHP 7中完全刪除,並且從5.5我相信已被棄用。 –

+0

我不明白爲什麼這被接受爲答案。有人能解釋一下嗎?! – Ionut