ers
Я пытаюсь узнать, как создать регистрацию и аутентификацию для веб-сайта с использованием Slim Framework.Моя цель состоит в том, чтобы сделать обработчик для POST, и при правильной аутентификации веб-сайт сохранит и имя пользователя, и имя.Так что в следующий раз, когда пользователь перейдет на страницу, веб-сайт приветствует его, указав свое имя.Я буду делать это через два отдельных файла PHP, однако я считаю, что проблема заключается в этом файле PHP.
Вот то, что у меня сейчас есть:
$app->post('/users', function (Request $request, Response $response, array $args) {
$user = array('username'=> $_POST['username'], 'password' => $_POST['password'], 'name' => $_POST['name']);
$res = saveUser($user);
if($result === true) { return $response->withRedirect('login.html', 302); }
return $response->withRedirect('registration.html#',$result,302); });
$app->post('/auth', function (Request $request, Response $response, array $args) {
if(isset($_POST['username']) {
return $response->withRedirect('welcome.php', 302);
}
if(authUser($_POST['username'], $_POST['password']) === true) {
$_SESSION["username"] = $_POST['username'];
$_SESSION["name"] = $_POST['name'];
return $response->withRedirect('welcome.php', 302);
}
else { //authentication doesn't work, destroy session and go to login page
session_destroy();
return $response->withRedirect('login.html',302);
}
Насколько я понимаю, имя пользователя, пароль и фактическое имя пользователя должны быть сохранены в _POST.Однако, когда я использую:
var_dump($_POST);
Пароль и имя пользователя - единственные, которые отображаются при вызове.Что заставляет меня верить, что именно поэтому мой "welcome.php" не приветствует пользователя.
Вот содержимое моего welcome.php:
<?php session_start(); ?>
!DOCTYPE html
<title> Welcome! </title>
<h1> Welcome Page </h1>
<section>
<p>
<?php
if(isset($_SESSION['name'])) { echo "Grettings " . $_SESSION['name']. "! ";}
?> Click <a href="login.html">here to login</a> OR <a href="registration.html"> here for registration</a>.
</p>
</section>
Я думаю, что моя ошибка должна заключаться в том, как я пытаюсь вызвать ее или в функции isset, но, опять же, я незнать, почему имя не было правильно сохранено.