回声文本区域';用PHP实现s值

回声文本区域';用PHP实现s值,php,html,Php,Html,我想用PHPechotextarea值,所以我用HTML创建了一个简单的表单,在表单中包含名为b64_-place的textarea元素,然后input提交值 我检查是否设置了b64\u位置,如果设置了,我会回显textarea的值。但是我的程序甚至没有进入条件块,我试着调试,但它并没有什么作用 <!DOCTYPE html> <html lang="en"> <head> <title>Document

我想用PHP
echo
textarea值,所以我用HTML创建了一个简单的表单,在表单中包含名为
b64_-place
textarea
元素,然后
input
提交值

我检查是否设置了
b64\u位置
,如果设置了,我会回显
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>

文件
在此处输入文本:

您的文本区域包含一个属性,该属性用于定义此输入附加到的表单的id。因此,当您提交表单时,textarea不会与表单绑定,数据也不会发送

您可以向表单中添加id:

<!-- 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”

您的文本区域包含一个属性,该属性用于定义此输入附加到的表单的id。因此,当您提交表单时,textarea不会与表单绑定,数据也不会发送

您可以向表单中添加id:

<!-- 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>

在此处输入文本:

或者根据高级SO成员的建议,删除
form=“encode”

编辑, 我建议您将方法更改为POST的原因是GET方法的长度限制。在某些时候,您可能需要对非常大的数据进行编码,并且由于URL长度限制,可能会对其进行修剪。但是使用POST,你不必担心这个限制。 解决问题的步骤

  • 如果表单和PHP代码位于同一个文件中,请将action=“index.PHP”更改为action=”“,并将method=“GET”更改为method=“POST”
  • 在文本区域中,使用占位符告诉用户要输入什么,而不是将其写在标记之间
  • 将$\u GET更改为$\u在代码中的任何位置发布
  • 您可以将以下代码复制到index.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>
    
    
    文件
    
    根据高级SO成员的建议进行编辑, 我建议您将方法更改为POST的原因是GET方法的长度限制。在某些时候,您可能需要对非常大的数据进行编码,并且由于URL长度限制,可能会对其进行修剪。但是使用POST,你不必担心这个限制。 解决问题的步骤

  • 如果表单和PHP代码位于同一个文件中,请将action=“index.PHP”更改为action=”“,并将method=“GET”更改为method=“POST”
  • 在文本区域中,使用占位符告诉用户要输入什么,而不是将其写在标记之间
  • 将$\u GET更改为$\u在代码中的任何位置发布
  • 您可以将以下代码复制到index.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>
    
    
    文件
    

    Wow,我不知道php提供了一个
    alert()
    函数;)@Nietthedark绝对有用comment@B001ᛦ 哦,是我的错。我本想把它回显出来的
    echo
    应该可以正常工作。如果没有,请在浏览器中选中“查看源”。如果您在那里看到您的原始PHP,那么您没有运行PHP。您当前的代码应该可以工作。哇,我不知道PHP提供了一个
    alert()
    函数;)@Nietthedark绝对有用comment@B001ᛦ 哦,是我的错。我本想把它回显出来的
    echo
    应该可以正常工作。如果没有,请在浏览器中选中“查看源”。如果您在那里看到原始PHP,那么您就没有运行PHP。您当前的代码应该可以工作。有趣的是,我不知道您可以为表单指定特定元素,我一直认为
    form
    属性只是用于提交按钮。我想不出这在任何情况下会有什么用处,但这很酷!好的,它可以被使用,例如在不同表单的
    表中,每个列都是一个表单,我不知道你可以为表单分配特定的元素,我一直认为
    表单
    属性只是用于提交按钮。我想不出这在任何情况下会有什么用处,但这很酷!嗯,它可以用在不同表单的
    表中,每个列都是一个表单,为什么OP应该将方法更改为
    POST
    ?您错过了最重要的部分,关于
    form=
    attribute这些都是使用GET的正当理由。e、 g.如果使用GET,可以与其他用户一起搜索搜索结果。是的,当然也可以使用$\u GET。也许你可以告诉我,如果我不喜欢邮寄而不是索取。我使用POST,因为GET有长度限制,因为url长度限制。:-)我不要邮寄。我希望允许其他用户发送URL中包含文本的链接为什么OP应该将方法更改为
    POST
    ?您错过了最重要的部分,关于
    form=
    attribute这些都是使用GET的正当理由。e、 g.如果使用GET,可以与其他用户一起搜索搜索结果。是的,当然也可以使用$\u GET。也许你可以告诉我,如果我不喜欢邮寄而不是索取。我使用POST,因为GET有长度限制,因为url长度限制。:-)我不要邮寄。我希望允许其他用户发送URL中包含文本的链接