I'm trying to set session in my program, after the user has logged with his account. If user input good email and password, then program set some variables, like this:
$_SESSION['user']['id'] = $row['id'];
$_SESSION['user']['email'] = $email;
$_SESSION['user']['admin'] = $row['admin'];
$_SESSION['logged'] = true;The problem is, that I'm getting this warning from first three rows of code above:
Warning: Illegal string offset 'id' in C:\Program Files (x86)\Zend\Apache2\htdocs\OOPeshop\user\User.php on line 193
So I checked, if all the variables are set, so i add to my code this two lines:
var_dump($row);
var_dump($email);but it was looking alright, I was getting output
array(2) { ["id"]=> string(2) "14" ["admin"]=> string(1) "0"} string(22) "foobar@gmail.com"
So can someone explain me where is the problem? I checked similar question, but found no solution to my problem.
I have tried this:
$user = array('id' => $row['id'], 'email' => $email, 'admin' => $row['admin']);
$_SESSION['user'] = $user;No more warnings. It set array first and then set whole array to session variable, it worked, but i don't know where's problem in my first code, so maybe someone with a better understanding can explain it better.
Anonymous User
01-Nov-2014I have tried this:
No more warnings. It set array first and then set whole array to session variable, it worked, but i don't know where's problem in my first code, so maybe someone with better understanding can explain it better.
It seems that $_SESSION['user'] has been in somehow set to string, dont know why, but that's the only explanation.