我已经在谷歌搜索了一个答案,但我找不到任何东西。因为我在找问题时找不到问题。
解决此问题的最佳方法是什么:
我的页面:edit_data.php
我有一个表单(method="post" action="save.php"
)。在提交时,我将数据存储在MySQL表中。
在save.php中:
MySQL插入(返回数据集的新id)
如果成功,我打电话给edit_data.php?id=<new_id>
如果错误我拨打error.php?msg=<error message>
问题是我丢失了错误数据。
这就是我想要的:
- 回到edit_data.php
- 直接显示错误
- 我希望所有字段都包含原始数据
我不能拿$ _GET,因为数据太大了。
有没有人为我提供简单的解决方案?
谢谢
答案 0 :(得分:0)
如果$ _GET很大,你可以编辑你的php.ini文件。
请注意安装了suhosin补丁的PHP设置会有 get参数的默认限制为512个字符。虽然不好 实践中,大多数浏览器(包括IE)支持最高2000左右的URL 字符,而Apache的默认值为8000。
要使用suhosin添加对长参数的支持,请添加 suhosin.get.max_value_length =在php.ini中
http://www.php.net/manual/en/reserved.variables.get.php#101469
答案 1 :(得分:0)
你有什么理由不能使用$_SESSION
吗?这样,您的所有数据都将在会话期间保存,或直到您删除它为止。
在输出任何标题之前,请确保每个PHP文档都包含session_start();
,这也适用于<?php
标记之前的任何空格。
要将所有$ _POST数据放入$ _SESSION ['POST'],你可以做类似的事情,
<?php
session_start();
foreach($_POST as $key=>$val) {
$_SESSION['POST'][$key] = $val;
} ?>
然后,您可以访问$_SESSION['POST']['KEYNAMEHERE']
PS:$_GET
和$_POST
可在此处互换