【问题标题】:Other ways to return data other than string $_GET string parameters?字符串 $_GET 字符串参数以外的其他数据返回方式?
【发布时间】:2015-04-07 02:03:58
【问题描述】:

所以我问我在尝试重新填充表单时除了重定向 GET 变量之外还有哪些选择?

我想我可以创建会话变量并使用它。我是否正确,这些是唯一的两种方法?

我现在拥有的是:

if ( count($m) > 0 ) {    
// there is an error in fields filled out so we are sending user back to     form.
$_SESSION["myarray"] = $m;
header("location: ./edit.php?datefield=".$datefield."&text=".$entry."&flag=".$flag);    
}

但这会向用户显示我的变量。我想避免这种情况。

更新 我重新措辞了我的问题和代码以更清晰。 我还发现我的解决方案是使用包含('edit-error.php')。这基本上是原始的edit.php,所有内容都被删除了,但生成表单所需的代码,我用所需的变量填充了edit-error.php。我以前从来没有在我的工具箱里有过这个,所以我很感谢建议它的用户。

【问题讨论】:

  • 这么多方法。但是,当您可以简单地包含视图并在其中预填充数据时,为什么要重定向呢?
  • @pala_4 我不明白您所说的“仅包含视图并预填充”是什么意思。似乎我必须用表单重定向回页面才能做到这一点?你说的这种方法有例子吗?
  • 您可以include('edit.php'),在edit.php 中,您可以查找您设置的变量以指定存在错误,还可以使用已输入的值预先填写表单值。而不是重定向
  • 啊!我明白你现在的意思了。这确实给了我一些想法。让我玩它。谢谢。

标签: php get header location session-variables


【解决方案1】:

您可以考虑隐藏用户信息(不完全,但比 GET 更强大)的一种方法是使用您的信息创建 JSON 并向您的页面发送 POST 请求。

就个人而言,我仍然更喜欢会话,但还有其他方法。

【讨论】:

    【解决方案2】:

    我使用的解决方案是我的用户 pala_ 提供的,所以感谢 pala_ 我对你的评论投了赞成票。

    我使用了 include('edit-error.php')。这基本上是原始的edit.php,所有内容都被删除了,但生成表单所需的代码,我用所需的变量填充了edit-error.php的表单。我以前从来没有在我的工具箱里有过这个,所以我很感谢建议它的人。

    这使我可以进行服务器端验证并使用用户输入再次重新显示表单,以便他们可以重新提交。我正在使用带有参数的标头(位置)作为 GET 提交,但我不希望这样。使用 include() 对我来说是一个完美的解决方案。

    【讨论】:

      猜你喜欢
      • 2021-04-26
      • 1970-01-01
      • 2018-01-03
      • 1970-01-01
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 2020-07-30
      相关资源
      最近更新 更多