0

我正在尝试使用以下代码获取发布的信息并显示信息:

PHP代码:

        $self = $_SERVER['PHP_SELF'];
        if(isset($_POST['send'])){                
            $words = htmlspecialchars($_POST['board']);
            print "<b>".$words."</b>";
        }            ​​​​

HTML 代码

<form action="<?php $self ?>" method=post> <!--$self is the directory of the page itself-->
        <p><i>Comment</i></p>
        <textarea name="board" rows="20" cols="10"></textarea>
        <input name="send" type="hidden" />
        <p><input type='submit' value='send' /></p>
</form>  

上面的代码将按我的意图工作。但是,如果我去掉输入 name="send" type="hidden",一旦单击发送按钮,用户输入消息将不会显示。为什么会发生这种情况?

4

3 回答 3

4

您需要将 name='send' 添加到您的提交按钮,您的 PHP 代码正在读取表单元素的名称,并且您还没有为您的提交按钮指定一个。

<form action="<?php $self ?>" method=post> <!--$self is the directory of the page itself-->
        <p><i>Comment</i></p>
        <textarea name="board" rows="20" cols="10"></textarea>
        <p><input type='submit' name='send' value='send' /></p>
</form>  

此外,快速说明 - 您可以将表单方法更改为 GET 而不是 POST,以轻松查看您在 URL 栏中发送的表单数据。

于 2013-06-27T01:02:27.100 回答
2

这是因为您正在检查 POST 变量“send”是否已设置。这就是您命名隐藏输入的名称。

您应该name在提交输入中添加一个。例子:

    <p><input type='submit' name="submit_button" value='send' /></p>

现在在您的 php 中,检查name您的提交按钮。我在这个例子中使用了“submit_button”。这是修改后的代码示例:

    $self = $_SERVER['PHP_SELF'];
    if(isset($_POST['submit_button'])){                
        $words = htmlspecialchars($_POST['board']);
        print "<b>".$words."</b>";
    }  
于 2013-06-27T01:02:34.730 回答
0

不必费心命名您的发送按钮或任何东西,只需删除该hidden行...

并将您的 php 更改为....

 $self = $_SERVER['PHP_SELF'];
    if(isset($_POST)){                
        $words = htmlspecialchars($_POST['board']);
        print "<b>".$words."</b>";
    }     
于 2013-06-27T01:06:18.750 回答