PHP数组到字符串的转换$_SESSION


PHP Array to string conversion $_SESSION

嘿,伙计们,我在检索一些SQLi数据并将其分配给$_SESSION时,遇到了一个奇怪的问题。我是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"]设置为从数据库中选择的用户Firstname。

下面是我账户的一部分。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>

它正在返回此错误:

欢迎使用您的帐户
注意:第36行C:''Users*''Deskt''XAMMP''htdocs''PHP''Website''account.PHP中的数组到字符串的转换
阵列!

感谢您的阅读,如果您需要更多信息,请告诉我!

继续并更改

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

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

这应该可以修复它:)

这是一个"陷阱",一开始让我有几次上当受骗。要使用带引号的数组值进行变量扩展,需要使用"复杂语法",即

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

将变量引用括在大括号中。