Обновление html после вызова php в автономный php файл

Я пытаюсь внедрить систему входа пользователя для моего сайта. У меня есть файл newMember.html, который имеет такую форму:

<form method="post" action="nameValidation.php">
 <p>Username:</p>
 
 
</form>

внутри nameValidation, я проверяю, доступно ли имя пользователя. Если это не так, я хочу каким-то образом показать красный текст рядом с моим полем ввода, в котором вы вводите свое имя пользователя. Я пробовал что-то вроде этого, но получил ошибку сервера:

(внутри nameValidation.php)

Я не хотел использовать встроенный php по двум причинам.

1) он выглядит суматошным и запутанным (по крайней мере для меня)

2) Я читал в других сообщениях stackoverflow, что это не очень хорошая практика.

Я буду использовать встроенный php, если мне нужно, но всякая помощь будет принята с благодарностью!

1 ответ

Используйте веб-структуру, такую как CakePHP, Laravel, Symfony или любые другие рамки, которые вам подходят.

Структура PHP использует шаблоны для размещения динамических страниц. Обычно они позволяют использовать специальные ярлыки в вашем коде, поэтому вам не нужно писать "встроенный PHP".

Это элемент управления MVC (Model View Controller): контроллеры контролируют фактические данные, используемые в вашем представлении, а не вид.

Достаточно о веб-фреймворках.

Чтобы ответить на ваш вопрос, сначала переименуйте файл в конец .php, чтобы показать, что файл содержит PHP.

Затем отредактируйте код таким образом, чтобы он проверял, существует ли пользователь. Самый красивый встроенный PHP-код создается, выполняя всю работу в верхней части страницы и используя сгенерированные данные на самой странице.

Итак, для вашего HTML:

<!--?php

/* For example: */
$username = $_POST['username'];
$db = new DB(/* ... */);
$userNameExists = $db ---> userNameExists ($username);

?>

<!-- The rest of the code of the page -->

<form method="post" action="nameValidation.php">
 <p>Username:</p>
 <!--?php echo $userNameExists ? '<span class="error"-->Username already exists' : '' ?>
 
</form>

licensed under cc by-sa 3.0 with attribution.