syntax error, unexpected T_DOUBLE_ARROW
<?php
session_start();
$link = mysqli_connect('remotemysql.com','3u5SxxxWnv','4VxvDT64ar','3u5SxxxWnv');
$login = md5($_POST['login']);
$pass = md5($_POST['pass']);
$result = mysqli_query($link, "SELECT * FROM form");
if (mysqli_num_rows($result) > 0) {
$_SESSION['user'] = (
"id" => $user['id'],
"login" => $user['login'],
"email" => $user['email']
);
} elseif(mysqli_num_rows($result) = 0) {
$_SESSION['message'] = 'Не верный логин или пароль';
header('location: /');
} else {
header('location: /cob.php');
}
?>
Ответы (1 шт):
Автор решения: Ein
→ Ссылка
Массив должен создаваться при помощи квадратных скобок. В elseif, вероятно, задумывалось сравнение.
Вот пример валидной конструкции:
if (mysqli_num_rows($result) > 0) {
$_SESSION['user'] = [ // замена скобки
"id" => $user['id'],
"login" => $user['login'],
"email" => $user['email']
]; // замена скобки
}
elseif(mysqli_num_rows($result) == 0) { // = заменено на ==
$_SESSION['message'] = 'Не верный логин или пароль';
header('location: /');
}
else{
header('location: /cob.php');
}
Cейчас же не понятно по какой логике выполнение должно пропустить первый else и перейти ко второму.