0

post-data.php包含将用户名发布到的表单 show-post-data.php
post-data.php

<form method="post" action="show-post-data.php">
user:<input type="text" name="user"></input>
        <input type="submit" name="submit" value="submit">
</form>

只有一个var_dump($_POST);命令show-post-data.php

<?php
var_dump($_POST);
?>

1.点击127.0.0.1/post-data.php浏览器。
2.输入tom并点击提交按钮。
3.点击127.0.0.1/show-post-data.php浏览器。
我们得到如下输出:

array(2) { ["user"]=> string(3) "tom" ["submit"]=> string(6) "submit" }

4.127.0.0.1/show-post-data.php第二次点击浏览器。

没有任何输出。$_POST现在是空的。
$_POST'值只能使用一次?

4

2 回答 2

0

这是因为 HTTP 协议是无状态的,这意味着您在请求中发送的信息将仅适用于该请求(除非您将其存储在服务器中)。

当您在 POST 中发送信息时,该信息会在变量中到达服务器(到您的 PHP 代码)$_POST,您可以在该请求中使用 in。在下一页加载中,除非您再次发送新信息,否则该变量将为空。这是正确的行为。

于 2018-08-11T05:29:31.343 回答
0

$_POST价值只能使用一次?

,它可以多次使用,但它应该只在它发布的页面中可用。

如果您将值发布到特定 URL,则在该时间只能在该指定 URL 中访问发布的变量。不在其他 URL 或其他时间。

如果您需要在其他部分/页面中使用,您必须保存该值或必须存储在 session 或 cookie 中。

if(isset($_POST) && count($_POST)) { 
  $_SESSION['post'] = $_POST; 
}
if(isset($_SESSION['post']) && count($_SESSION['post'])) { 
  $_POST = $_SESSION['post']; 
}
于 2018-08-11T05:41:56.977 回答