Я часами пытался создать пользовательскую форму PHP для своего сайта, пробовал несколько руководств и следил за разными ответами, которые видел здесь, но, похоже, ничего не работает, и я не уверен, почему.
Я упростил то, что пытаюсь сделать, чтобы я мог просто заставить его работать, а затем строить поверх этого. Итак, я создал небольшую «форму для примера» на своей домашней странице.
Форма Цель:
После отправки формы перезагрузите ту же страницу, но отобразите введенные пользователем данные, а не форму.
Работы пока:
Домашняя страница моего сайта настроена на страницу с названием «Добро пожаловать». Итак, www.mysite.com показывает страницу с названием «Добро пожаловать» на панели инструментов WP. В разделе «Добро пожаловать» на панели инструментов WP я установил шаблон «Мой шаблон приветствия».
В шаблоне PHP-файла у меня есть такой код:
<?php
if (isset($_POST["name"])) {
?>
Hi <?php echo htmlspecialchars($_POST["name"]); ?>.
<?php
}
else {
?><br>
<form action = "" method = "post">
<p>Your Name: <input type = "text" name = "name" /></p>
<p><input type = "submit" value = "submit" name = "submit_btn"></p>
</form>
<br><?php
}
?>
Ошибка:
После отправки формы страница обновляется. Хотя URL-адрес по-прежнему читается просто «www.mysite.com», похоже, загружается другой шаблон, чем шаблон в «Добро пожаловать». Кажется, это шаблон «эй, мы не нашли то, что вы искали», и текст на странице выглядит так.
Oops! That page can’t be found.
It looks like nothing was found at this location. Maybe try one of the links below or a search?
Search
Archives
Try looking in the monthly archives. ?
Какую ошибку выдает?
Хороший момент - когда я нажимаю кнопку «Отправить», страница перезагружается, но отображается другой шаблон страницы (он похож на шаблон «Ошибка, страница не найдена»), хотя URL-адрес читается как «www.mysite.com». На странице написано: «Ой! Эту страницу нельзя найти».
Обновлено, чтобы указать точную проблему в вопросе.
Возможно, вы можете проверить, существует ли массив $ _POST и не пусто ли специальное значение, например
if ( !empty($_POST) && isset($_POST['name']) ){
// Your Welcome Part
} else {
// The form part
}
empty()
проверяет, установлено ли что-то и не является ли оно нулевым. нет необходимости в обоих.
Попробуйте использовать другое имя для текстового элемента.
пример:
<?php
if (isset($_POST["full_name"])) {
?>
Hi <?php echo htmlspecialchars($_POST["full_name"]); ?>.
<?php
}
else {
?><br>
<form action = "" method = "post">
<p>Your Name: <input type = "text" name = "full_name" /></p>
<p><input type = "submit" value = "submit" name = "submit_btn"></p>
</form>
<br>
<?php
}
?>
ARGH ctrl K не работает, работает над редактированием для включения кода PHP.