2016-05-15 78 views
1

嗨所以我遇到什麼似乎檢索,並將其分配給一個$ _SESSION當試圖輸出一些SQLI數據時是一個奇怪的問題。我是很新的PHP這樣的機會是我會做一些愚蠢的事..

因此,這裏是我的login.php PHP部分:

<?php 
require 'connections.php'; 
if(isset($_POST['Login'])){ 

    $EM = $_POST['Email']; 
    $PW = $_POST['Password']; 

    $result = $con->query("SELECT * FROM users where Email='$EM'"); 

    $row = $result->fetch_array(MYSQLI_BOTH); 

    if(password_verify($PW, $row['Password'])){ 


    session_start(); 

    $_SESSION["UserID"] = $row['UserID']; 
    $_SESSION["FirstName"] = $row=['Firstname']; 

    header('Location: account.php'); 
    } 
    else{ 
     session_start(); 
     $_SESSION['LogInFail'] = "Yes"; 
    } 

} 
?> 

所以上面我相信我把我的$_SESSION["FirstName"]到從數據庫中選擇的用戶名字。

當年這裏是我的account.php PHP代碼部分:

<?php 
require 'connections.php'; 
session_start(); 
if(isset($_SESSION['UserID'])){ 
} 
else { 
    header('Location: login.php'); 
} 
?> 

然後現在的問題是:

<b>Welcome to your account <?php echo $_SESSION['FirstName']; ?>!</b> 

它返回此錯誤:

Welcome to your account
Notice: Array to string conversion in C:\Users*\Desktop\XAMMP\htdocs\PHP\Website\account.php on line 36
Array!

謝謝閱讀,如果你需要更多的信息讓我知道!

+2

在聲明變量'$ _SESSION [ '姓']'你說'$行=',嘗試remobing的'='從那裏,使其只'$行[ '姓']' - 應該解決它:) – Jek

+0

@Jek三江源!這解決了我的問題! –

+0

剛纔爲你找出答案:) – Jek

回答

1

繼續前進,改變

$_SESSION['FirstName'] = $row=['FirstName']; 

$_SESSION['FirstName'] = $row['FirstName']; 

這應該修復它:)

0

這是一個 「疑難雜症」 的是釘了我幾次在第一。以與一個數組值可變的膨脹功具有引用的鍵,即you need to use "complex syntax"

<b>Welcome to your account <?php echo {$_SESSION['FirstName']}; ?>!</b> 

包圍在括號中的參考變量。

+0

謝謝你們的答案,這也幫助我:)。 –