Значение Echo textarea с PHP - PullRequest
       6

Значение Echo textarea с PHP

0 голосов
/ 04 августа 2020

Я хочу echo значение textarea с помощью PHP, поэтому я создаю простую форму с HTML, и внутри нее я включаю элемент textarea с именем b64_place, а затем input для отправки значений.

Я проверяю, установлено ли b64_place, и если это так, я повторяю значение textarea. Но моя программа даже не попадает в блок условий, я пытаюсь отладить, а она просто ничего не делает.

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Document</title>
    </head>
    <body>
        <form action="index.php" method="GET">
            <textarea name="b64_place" form="encode">Enter text here:</textarea>
            <input type="submit" value="Encode">
        </form>
        <?php
            if (isset($_GET['b64_place'])) {
                $base64e_text = htmlspecialchars($_GET['b64_place']);
                echo $base64e_text;
            }
        ?>
    </body>
</html>

Ответы [ 2 ]

1 голос
/ 04 августа 2020

Изменить на основе предложения старших членов SO, Я рекомендую вам изменить метод на POST из-за ограничения длины метода GET. В какой-то момент вы можете захотеть закодировать очень большие данные, и они могут быть обрезаны из-за ограничения длины URL. Но с POST вам не нужно беспокоиться об этом ограничении. Шаги по решению вашей проблемы.

  1. Если ваша форма и код PHP находятся в одном файле, изменится действие = " index. php "to action =" "и измените method =" GET "на method =" POST "
  2. В текстовой области используйте заполнитель, чтобы сообщить пользователю, что вводить, вместо того, чтобы писать это между тегами .
  3. замените $ _GET на $ _POST везде в вашем коде.

Вы можете скопировать следующий код в индекс. php, и он будет работать нормально.

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <title>Document</title>
        </head>
        <body>
            <form action="" method="POST">
                <textarea name="b64_place" placeholder="Enter text here:"></textarea>
                <input type="submit" value="Encode">
            </form>
            <?php
                if (isset($_POST['b64_place'])) {
                    $base64e_text = htmlspecialchars($_POST['b64_place']);
                    echo $base64e_text;
                }
        ?>
    </body>
</html>
1 голос
/ 04 августа 2020

Ваше текстовое поле содержит атрибут form Этот атрибут используется для определения идентификатора формы, к которой прикреплен этот ввод. Итак, когда вы отправляете форму, текстовое поле не связано с этой формой, и данные не отправляются

Вы можете добавить идентификатор в форму:

<!-- check this ----------------------v---------v -->
<form action="index.php" method="GET" id="encode">
    <textarea name="b64_place" form="encode">Enter text here:</textarea>
    <input type="submit" value="Encode">
</form>

или просто удалите form="encode"

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