Я пытаюсь передать переменные сеанса с помощью $ _SESSION, поэтому я могу проверить, имеет ли пользователь, который в настоящее время вошел в систему, привилегии «admin», который хранится в моей таблице базы данных «login» as "login_privileges". Если у них есть привилегии администратора, они могут получить доступ к определенным страницам, если они не просто лишены доступа, но не вышли из системы. Когда действительное имя пользователя и пароль вводятся в форму, я получаю сообщение об ошибке «Не могу использовать функцию return value in write context». Должна быть ошибка с СЕССИЕЙ, что не так?
<?php
require("dbconnectprojdev.php");
$con = mysql_connect($host, $username, $password);
$username = $_POST['username'];
$password = $_POST['password'];
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username, $con);
$password = mysql_real_escape_string($password, $con);
$stmt=$dbh->prepare("SELECT * FROM login WHERE login_username = :username AND login_password = :password");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$count = $count + 1;
}
$privilege = $row['login_privileges'];
if($count==1){
session_start();
$_SESSION('privilege') = $privilege;
$_SESSION('username') = $username;
$_SESSION('password') = $password;
header("location:logincorrect.php");
} else {
echo "Invalid login details";
echo "<b></br><a href=default.php>Back to login</a>";
}
?>
"dbconnectprojdev.php" выглядит следующим образом:
<?php
$host = "*****";
$database = "*****";
$username = "*****";
$password = "*****";
$dbh = new PDO("mysql:host=$host; dbname=$database; charset=utf8", $username , $password);
?>
$ _SESSION является суперглобальным массивом, а не функция :) – thpl
Принимая взглянуть на [документации] (http://php.net/manual/en/ref.session.php) всегда хороший. – Jonast92