Динамическое изменение содержимого HTML на основе ввода формы после обновления страницы - PullRequest
0 голосов
/ 08 января 2019

В настоящее время я пытаюсь создать простую тестовую веб-страницу, в которой пользователь вводит свое имя через форму, а затем, после отправки формы, страница обновляется, и теперь на странице отображается ТОЛЬКО «Hello NAME».

Теперь, после перехода на этот конкретный URL, вы больше не можете вводить имя снова и видите только фразу "Hello NAME". Кроме того, страница с формой и конечной фразой должна быть доступна по одному и тому же URL - они должны быть одной и той же страницей.

Любая помощь будет принята с благодарностью!

Ответы [ 3 ]

0 голосов
/ 08 января 2019

Вот очень простой пример того, как сделать это, используя сеанс и post / redirect / get .

<?php
    session_start();  // be sure to start the session first
    // **don't output anything before this**

    // if the name has been added to the session, echo the hello message and exit the script
    // (the form won't be displayed)
    if (isset($_SESSION['name'])) {
        echo 'Hello ' . $_SESSION['name'];
        exit;
    }

    // if the name has been posted, save it to the session and redirect to the same page
    // (the form won't be displayed)
    if (isset($_POST['name'])) {
        $_SESSION['name'] = $_POST['name'];
        header('Location: ' . $_SERVER['REQUEST_URI']);
        exit;
    }
    // If neither of those things are true, go ahead and show the form.
?>


<form method="post">
    <input type="text" name="name">
    <input type="submit" value="Submit">
</form>
0 голосов
/ 08 января 2019

Использование PHP-сессий - это одно решение, а другое, которое вы можете использовать, - это использование параметров GET.

<form action="page2.php" method="get">
    <input type="text" name="user_name">
    <button type="submit">Submit</button>
</form>

В приведенном выше примере форма будет отправлять введенное значение (из ввода user_name) для доступа к нему в файле page2.php (это атрибут действия формы).

В вашем файле page2.php вы можете получить доступ к значению из формы, используя

<?php 
/** $_GET['user_name'] is the name of your input in the form */
echo "Hello " . $_GET['user_name'];
?>

ПРИМЕЧАНИЕ. Параметры $ _GET не рекомендуется при доступе к конфиденциальным данным, поскольку это значение отображается и может быть отредактировано конечным пользователем в URL.

0 голосов
/ 08 января 2019

Итак, насколько я понимаю, вы хотите получить значение из $_GET или $_POST.

После перехода на другой URL вы можете установить ИМЯ, установленное пользователем для переменной $_SESSION, вам просто нужно запустить сеанс в начале страницы session_start(), а затем Добавление имени в переменную $_SESSION['name'] = $_POST['name'] или $_SESSION['name'] = $_GET['name']; зависит от того, что вы хотите сделать или использовать. И не забывайте о htmlentities() и strip_tags(), чтобы «дезинфицировать» переменную или сделать ее более безопасной для использования.

После этого вы должны напечатать что-то вроде echo "Hello ". $_SESSION['name']; или что-нибудь в этом роде.

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