2015-04-07 71 views
0

所以即时通讯问我试图重新填充表单时,除了重定向GET变量之外还有什么选项?

我想我可以创建会话变量并使用它。我纠正这些只有2种方法吗?

我现在拥有的是:

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);  
} 

但是这表明我的变量给用户。我想避免这种情况。

UPDATE 我重新措辞我的问题和代码更清晰。 我也喜欢发现我的解决方案是使用include('edit-error.php')。这基本上是原始的edit.php,所有东西都被剥离了,但是生成表单所需的代码,并且我用所需的变量填充了edit-error.php。我以前从未在我的工具箱中使用过这个功能,所以我很感激推荐它的用户。

+2

这么多的方法。但为什么重定向时,你可以简单地包含视图并预先填充数据呢? –

+0

@ pala_4我不明白你的意思是“只包括视图和预填充”。似乎我必须重新回到带表格的页面才能做到这一点?你提到这种方法的例子吗? –

+1

您可以'include('edit.php')',并在edit.php中,您可以查找已设置的变量以指定存在错误,并且还可以预先填写已输入表单的值。而不是重定向 –

回答

1

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

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

0

我使用的解决方案是由我的用户pala_提供的,所以感谢pala_我向您投票评论。

我用include('edit-error.php')。这基本上是原始的edit.php,所有东西都被剥离了,但是生成表单所需的代码,并且我用所需的变量填充了edit-error.php的表单。我从来没有在我的工具箱中使用过这个功能,所以我很感谢pala_的建议。

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

相关问题