Задать вопрос
@Detoxer

В чём syntax error?

<?php
session_start();
// список пользователей

$userList = array(
    1 => array(
        "login" => "ivan",
        "password" => "i",
        "info" => "Иван Иванов"
    ),
    2 => array(
        "login" => "petr",
        "password" => "p",
        "info" => "Петр Петров"
    ),
    3 => array(
        "login" => "sidor",
        "password" => "s",
        "info" => "Сидор Сидоров"
    ),
);

// проверяет, существование пользователя с заданными именем и паролем

function checkUser($login, $password)
{
    global $userList;
    foreach ($userList as $uid => $user) {
        if (($user["login"] == $login) and
            ($user["password"] == $password)
        ) {
            return $uid;
        }
    }
    return false;
}

// возвращает информацию о пользователе с заданным идентификатором

function getUserInfo($uid)
{
    global $userList;
    if (isset($userList[$uid]))
        return $userList[$uid]["info"];
    return false;
}

header('Content-Type: text/html; charset=utf-8');
session_name('login');
session_start();
do {
    $message = "";
    $showLoginForm = true;
    if (
        isset($_SESSION['uid']) and
        isset($_SESSION['act']) and
        ($_REQUEST['act'] == "logout")
    ) {
        unset($_SESSION['uid']);
        $message = "До свидания, вы успешно покинули систеу";
        break;
    }
    if (
        isset($_POST['login']) and
        isset($_POST['password'])
    ) {
        $login = $_POST['login'];
        $password = $_POST['password'];
        $test = checkUser($login, $password);
        if ($test) {
            $_SESSION['uid'] = $test;
            $message = "Здравствуйте, вы успешно вошли в систему";
        } else {
            $message = "Пользователь с заданными логином и паролем не существует";
            break;
        }
    }
    if (isset($_SESSION['uid'])) {
        $info = getUserInfo($_SESSION['uid']);
        $message = "Вы авторизованы как $info " . '<a href="login.php?act=logout">Выйти</a>';
        $showLoginForm = false;
    }
} while (0);
$html = <<<LOGIN_INFO
<h2>Авторизация</h2>
<p>$message</p>

LOGIN_INFO;

if ($showLoginForm) {
    $html .= <<<LOGIN_FORM
    <form name = "loginForm" method="post" action="login.php">
    <p>Логин:</p>
    <p><input type="text" maxlength="40" size="20" autocomplete="new-password" name="login" value="">
    <p>Пароль:</p>
    <p><input type="password" maxlength="40" size="20" name="password" autocomplete="new-password" value="">
    <p><input type="submit" value="Войти"></p>
    </form>
    LOGIN_FORM;
}

echo $html;


Ошибка: 629f81b4090cf230251644.png
103 строка после echo $html;
  • Вопрос задан
  • 86 просмотров
Подписаться Простой 1 комментарий
Решения вопроса 1
toxa82
@toxa82
Закрывающая "LOGIN_FORM;" должна быть без отступа.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы