PHP Post表单中的意外输出


Unexpected output in PHP Post form

这是我的index.php:

<?php
$about_me = array("Lorem ipsum dolor sit amet.",
"Lorem ipsum dolor sit amet", "Lorem ipsum");
?>
<form action="generate.php" method="POST">
<input type="hidden" name="about_me" value="<?php echo $about_me;?>">
<input type="submit" class="download_button" value="download">
</form>

这是generate.php:

<?php
$about_me = $_POST['about_me'];
$test = $about_me[0];
echo $test;
?>

generate.php的输出是

<

我期望输出为Lorem ipsum dolor sit amet.。但没想到我收到的只是一支箭。如果有人能帮助我,我会很感激的。

没有索引的数组不能回显。

所以试试这个

<input type="hidden" name="name" value="<?php echo $about_me[0];?>">
//----------------------------------------------------------^^^

也可以把这个输入域称为name也就是name="name"在这里用它的名字

<?php
$about_me = $_POST['name'];
echo $about_me;
?>

但是请记住,这只会传递index.php$about_me数组的第一次出现。

如果您想传递添加到$about_me数组的所有数据,请将其改为一个简单的字符串

<?php
$about_me = "Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet,Lorem ipsum"
?>
<form action="generate.php" method="POST">
<input type="hidden" name="about_me" value="<?php echo $about_me;?>">
<input type="submit" class="download_button" value="download">
</form>

或者在数组

中创建尽可能多的隐藏字段
<?php
$about_me = array("Lorem ipsum dolor sit amet.",
                  "Lorem ipsum dolor sit amet", 
                  "Lorem ipsum");
?>
<form action="generate.php" method="POST">
<?php
foreach ( $about_me as $me) :
?>
    <input type="hidden" name="about_me[]" value="<?php echo $me;?>">
<?php
endforeach;
?>
<input type="submit" class="download_button" value="download">
</form>

然后像这样处理

<?php
    if (isset($_POST['about_me']) {
        foreach ($_POST['about_me'] as $me) {
            echo $me . '<br>';
        }
    } else {
        echo 'Woops no data found';
?>

$_POST[]根据参数名称从表单中检索参数。它无法访问您在代码(PHP或Javascript)中设置的任何变量。

参数名是从表单的元素中分配的。我假设您正在尝试获取隐藏输入元素的值,因此您应该检查$_POST['name']而不是$_POST['about_me']。