Как установить значение по умолчанию для ввода формы HTML? - PullRequest
0 голосов
/ 13 февраля 2020

Итак, я сделал небольшую форму в HTML, которая позволяет пользователям вводить свое имя, а затем оно отображается на сайте. Это отлично работает, если вы не посещаете страницу в первый раз, поскольку поле ввода еще не содержит значения, и поэтому при попытке визуализации PHP отображается сообщение об ошибке. Мне было интересно, есть ли способ установить значение по умолчанию для поля ввода, чтобы я не получил эту ошибку.

Вот мой код:

<html>
<head>
    <title>My PHP Site</title>
</head>
<body>
    <h1>My PHP Site</h1>
    <form action="dynamictest.php" method="post">
        <input type="text" name="username" placeholder="Username">  
        <input type="submit"><br>
    </form>
    <?php
      if ($_POST['username'] === '') {
          echo "<p>Welcome, stranger.</p>";
      } else {
          echo "<p>Welcome, {$_POST['username']}.</p>";
      }
    ?>
</body>
</html>

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

В вашем PHP коде вы должны проверить, является ли запрос POST, прежде чем пытаться обработать POST элементов:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  if ($_POST['username'] === '') {
    echo "<p>Welcome, stranger.</p>";
  } else {
    echo "<p>Welcome, {$_POST['username']}.</p>";
  }
}
?>

Это не запустит ваш существующий код, если страница не POST, и, следовательно, ситуация, вызывающая ошибку, не возникнет.

0 голосов
/ 13 февраля 2020

Я могу себе представить, что вы получаете ошибку "Неопределенный индекс" из php. В этом случае это потому, что вы пытаетесь получить доступ к полю, которое не существует, когда вы загружаете страницу с запросом GET.

Чтобы обойти это, вы можете проверить, существует ли этот ключ.

if (array_key_exists('username', $_POST) && $_POST['username'] === '') {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...