代码之家  ›  专栏  ›  技术社区  ›  Starx

通过不同页面(如$\u会话)保留$\u post变量

  •  -2
  • Starx  · 技术社区  · 14 年前

    一旦通过post提交了一些数据,是否可以通过不同的页面将它们作为$u post提供,就像$u会话允许我们做的那样?

    3 回复  |  直到 13 年前
        1
  •  1
  •   Scott Saunders    14 年前

    您需要解析$_post中的数据,并在表单中重新创建它。你可以使用隐藏字段。

    或者,您可以在用户会话中保存$\u post数据,并在需要时引用它。您必须管理数据的生命周期,以确保它不会停留太久。

        2
  •  1
  •   Starx    13 年前

    今天在挖掘一个旧问题。但我忘了把我找到的解决方案贴出来……

    将此代码段放在每页的顶部

    if(isset($_POST) & count($_POST)) { $_SESSION['post'] = $_POST; }
    if(isset($_SESSION['post']) && count($_SESSION['post'])) { $_POST = $_SESSION['post']; }
    
        3
  •  0
  •   Joseph    14 年前

    问题是,您正在通过存储在$\u get变量中的URL(而不是$\u post)发送数据。如果您希望能够以任何一种格式提交数据,请改用$_请求。

    关于使用$\u请求是否是一个好主意,有一些争论,但是如果你在做一个简单的站点,它就没有什么错。

    如果您不想使用$_请求,那么可以对您期望的每个变量使用以下代码:

    if (!empty($_GET['foo'])) {
        $foo = $_GET['foo'];
    } elseif (!empty($_POST['foo'])) {
        $foo = $_POST['foo'];
    } else {
        die("Foo not submitted");
    }