Создание формы авторизации

sofiyavv06

Новичок
Добрый день. заранее извиняюсь за возможно глупый вопрос, т.к. я то начала изучать php. есть следующее задание:
  1. В файле index.php в корне сайта необходимо заставить работать форму авторизации.
  2. Разместить в файле блок php с двумя переменными $login и $password. Присвоить им значения логина и пароля (придумать самостоятельно).
  3. Форма авторизации должна выводиться на странице только при передаче GET параметра “login” в адресной строке браузера в значении “yes”. Вспоминаем про суперглобальный массив $_GET


Правильно ли я понимаю, что нужно создать отдельный файл для формы авторизации и подключить его index.php? на данный момент есть такой код:
PHP:
<?php include $_SERVER['DOCUMENT_ROOT'] . '/template/header.php'; ?>
        <h1>Каталог</h1>
        <div class="items">
            <?php foreach ($products as $id => $product) {?>
                <figure>
                <p><img src="<?=$product['img']?>" alt="" /></p>
                <figcaption><?=$product['name']?></figcaption>
                <a href="/form.php?id=<?=$product['id']?>" class="btn">Купить</a>
            </figure>
            <?php }?>
          
        </div>
 <?php include $_SERVER['DOCUMENT_ROOT'] . '/template/footer.php'; ?>
 

Фанат

oncle terrible
Команда форума
Я думаю, это не принципиально. Можно в отдельный файл, а можно прямо в индекс.

Мне другое непонятно - то имеется ввиду под "заставить работать". Просто выводить форму, или написать полностью авторизацию, чтобы запоминала пользователя?
 

sofiyavv06

Новичок
Я думаю, это не принципиально. Можно в отдельный файл, а можно прямо в индекс.

Мне другое непонятно - то имеется ввиду под "заставить работать". Просто выводить форму, или написать полностью авторизацию, чтобы запоминала пользователя?
спасибо за ответ) вот остальные пункты задания :
  1. Заполненная пользователем форма должна отправляться методом POST на эту же страницу. Для этого необходимо в атрибуте “action” тега “form” указать относительную ссылку на страницу index.php с необходимыми параметрами.
  2. В случае отправки запроса методом POST (проверяем условием if суперглобальный массив $_POST на пустоту) на сервере должна осуществляться проверка логина и пароля введенных пользователем с заданными по умолчанию в переменных $login и $password соответственно. Необходимо проверить, что совпадает логин и совпадает пароль одновременно. Смотрим в суперглобальный массив $_POST.
  3. При совпадении и логина, и пароля необходимо на странице вывести сообщение об успешной авторизации пользователя, которое необходимо подключить из файла /include/success.php. Вспоминаем про функции подключения файлов. В случае несовпадения либо логина, либо пароля необходимо вывести форму авторизации с сообщением: “Неверный логин или пароль”. При этом в поля формы необходимо подставить данные, которые ввел пользователь ранее. Для этого в атрибуты “value” тегов “input” необходимо подставить данные, которые пришли из формы или подставлять пустые строки, если данных нет. Вспоминаем про замечательный тернарный оператор и используем его.
я так понимаю, что нужно сделать так, чтоб форма запоминала данные
 

Фанат

oncle terrible
Команда форума
Да, так гораздо яснее.
Нет, запоминать не надо.
Просто вывести сообщение. Это логично.
 

sofiyavv06

Новичок
Да, так гораздо яснее.
Нет, запоминать не надо.
Просто вывести сообщение. Это логично.
правильно ли будет сделать так:
PHP:
<form action="/" method="post">
<input type="text" name="user" /><br />
<input type="password" name="pass" /><br />
<input type="submit" name="submit" value="Войти" />
</form>

$arr =
[
  'Sofiya' => "5050",
  'Aleksey' => "6666",
  'Andrey' => "999"
];

function user_data_check($login, $password){
    $arr= ["Sofiya"=> "5050", "Aleksey" => "6666", "Andrey" => "999"];
    foreach ($arr as $key => $val){
        if ($key == $login){
            echo $key . "проверка пройдена";;
        }
    }
}
 
if (isset($_POST["login"]) && ($_POST["password"])){
    echo "Спасибо за авторизацию!";
    user_data_check($_POST["login"], $_POST["password"]);
}

<?php include $_SERVER['DOCUMENT_ROOT'] . '/template/footer.php'; ?>
 

Фанат

oncle terrible
Команда форума
Нет конечно.
Не выполнено почти ни одно из условий.
В первом посте описано три условия.
Два из них не выполнены
 
Сверху