Использование php для отображения приветственного сообщения на той же странице с использованием условных выражений - PullRequest
1 голос
/ 09 апреля 2019

Когда пользователь заходит на страницу журнала посещений, он должен видеть подсказку с просьбой ввести свое имя. После отправки формы на той же странице должно появиться совершенно другое сообщение, приветствующее пользователя на веб-странице. Когда пользователь обновляет страницу, процесс начинается заново.
Это то, что я пробовал до сих пор, это работает, но я все еще не понимаю, как я мог бы отобразить новое сообщение после ввода.
Вот код, который у меня есть, мне нужна помощь только с использованием PHP, чтобы получить правильный желаемый результат

Покушение

<?php
// define variables and set to empty values
$nameErr = "";
$name = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $nameErr = "Name is required";
  } 


  else {
    $name = test_input($_POST["name"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
      $nameErr = "Only letters and white space allowed"; 
    }

  }

}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}
?>

<p2 id="example-id-name" class="centered-text "></p>
<p><span class="error"></span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">  
   <input type="text" name="name" value="<?php echo $name;?>">

   <span class="error"> <?php echo $nameErr;?></span>
  <br> <br>

 <input type="submit" name="submit" value="Submit">


</form>

<?php

echo "$name";
echo "<br>";

?>

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

Где вы повторяете имя, вы можете проверить, есть ли оно у вас или нет, и выбрать сообщение для отображения

<?php
if($name) {
  echo "Hi $name!\n Welcome to our store!"
}
else {
  echo "Please enter your name"
}
echo "<br>";
?>
0 голосов
/ 10 апреля 2019

Вы можете написать встроенный php и функции .

Код:

<?php
# filter input
function filter($var) {
    return htmlspecialchars(stripslashes(trim($var)));
}
# validate name
function validate_name(&$name, &$err){
    if(empty($name)){
        $err = "Name is required";
        return;
    }
    $name = filter($name);
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
        $err = "Only letters and white space allowed";
    }
}
$method = filter_input(INPUT_SERVER, 'REQUEST_METHOD');
$err = "";

# If client post a name, then validate the name
if ($method === "POST"){
    $name = $_POST["name"] ?? "";
    validate_name($name, $err);
}
?>
<!-- The form  -->
<form method="post">
    <label>
        <input type="text" name="name" value="<?=$name ?? ""; ?>">
    </label>

    <!-- Show if error  -->
    <?php if (!empty($err)) { ?>
        <span class="error">
        <?=$err ?>
        </span>
    <?php } ?>

    <br>
    <input type="submit" name="submit" value="Submit">
</form>

<?php if (isset($name) && empty($err)) { ?>
    <p>Hi <?=$name ?>!</p>
    <p>Welcome to our store!</p>
<?php } ?>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...