PHP数组到字符串转换$ _SESSION

时间:2016-05-15 00:52:27

标签: php mysql arrays session mysqli

嘿伙计们,所以当我在检索它并将其分配给$ _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>

它返回此错误:

  

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

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

2 个答案:

答案 0 :(得分:1)

继续并更改

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

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

这应该解决它:)

答案 1 :(得分:0)

这是一个“陷阱”,一开始就把我钉了几次。使用带引号的键you need to use "complex syntax"

进行变量扩展
<b>Welcome to your account <?php echo {$_SESSION['FirstName']}; ?>!</b>

将大括号中的变量引用括起来。