Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
注意:数组到字符串转换PHP错误,会话数组?_Php_Arrays_Session_Login - Fatal编程技术网

注意:数组到字符串转换PHP错误,会话数组?

注意:数组到字符串转换PHP错误,会话数组?,php,arrays,session,login,Php,Arrays,Session,Login,我对php相当陌生,我试图创建一个登录,我在过去的两天里一直试图找出什么是错误的,我尝试了所有的方法,但都找不到解决方法,我让人们在网上到处寻找,但找不到合适的解决方法 我尝试登录时不断收到此错误' 注意:第6行欢迎使用数组中的__________;中的数组到字符串转换 当我登录时,似乎是数组导致了问题,我希望它显示用户的名字和姓氏。这是我的代码,提前谢谢大家:) Login.php 您要做的是将数组放入$\u会话['user']。如果您尝试将数组转换为字符串,它将无法像JavaScript中的

我对php相当陌生,我试图创建一个登录,我在过去的两天里一直试图找出什么是错误的,我尝试了所有的方法,但都找不到解决方法,我让人们在网上到处寻找,但找不到合适的解决方法

我尝试登录时不断收到此错误'

注意:第6行欢迎使用数组中的__________;中的数组到字符串转换

当我登录时,似乎是数组导致了问题,我希望它显示用户的名字和姓氏。这是我的代码,提前谢谢大家:)

Login.php

您要做的是将数组放入$\u会话['user']。如果您尝试将数组转换为字符串,它将无法像JavaScript中的示例那样工作

您需要将数组中的名字和姓氏组合起来:


echo“欢迎”$_会话['user']['firstname'].'$_会话['user']['lastname']

在您的welcome.php文件中,您已经编写了

echo 'Welcome '. $_SESSION['user'];
但是变量$_SESSION['user']是一个数组,您试图用字符串连接它。这是主要问题。数组不能与字符串连接

所以要解决这个问题,你可以这样做

echo 'Welcome '. implode(" ", $_SESSION["user"]);

希望这能有所帮助。

1-首先,您需要删除
mysqli\u close($connection)从那里开始。您可以将其放在脚本的末尾。因为您正在尝试关闭此处的连接,然后您也在尝试计数行。这可能会造成问题

2-您有数组。您正在尝试使用而不提取。请参阅

$fullname=array(firstname=>$row['firstname'],lastname=>$row['lastname']);
3-我建议您将其从代码中删除

$fullname=array('firstname'=>$row['firstname'],'lastname'=>$row['lastname']);
试着这样做

$_SESSION['user'] = $row['firstname'];

您不能
echo
数组。
所以你必须
内爆
数组如下:

echo 'Welcome '.implode(" ", $_SESSION['user']);
echo isset($_SESSION['user']) ? 'Welcome '.implode(" ", $_SESSION['user']) : "Whatever you want when user is not logged in";
但这将给您带来
警告:introde():在welcome.php中传递的参数无效,因为您注销时
取消了
$\u会话['user']

因此,您必须使用
isset
检查它,如下所示:

echo 'Welcome '.implode(" ", $_SESSION['user']);
echo isset($_SESSION['user']) ? 'Welcome '.implode(" ", $_SESSION['user']) : "Whatever you want when user is not logged in";

先生,你是个传奇人物!你的方法非常有效,非常感谢!但是现在当我注销时,我遇到了这个错误:注意:第6行welcome.php中的未定义索引:user警告:introde():在第6行welcome中传入的welcome.php参数无效,您知道什么可以解决这个问题吗?只需检查会话变量是否存在或不使用isset();Harish的内爆方法似乎工作得最好,但现在我收到以下错误通知:未定义索引:第6行welcome.php中的用户警告:内爆():在第6行welcome.php中传递的参数无效欢迎,有人知道什么可以解决此问题吗?这意味着会话是空的。您非常容易受到SQL注入攻击,你应该使用事先准备好的陈述。此外,密码永远不应该以纯文本形式存储,它们应该始终是散列的。不要忘记勾选正确的位置solution@SilentChef187