使用php脚本保存数据并在出错时保留后变量

时间:2014-10-23 10:49:56

标签: php mysql post return call

我已经在谷歌搜索了一个答案,但我找不到任何东西。因为我在找问题时找不到问题。

解决此问题的最佳方法是什么:

我的页面: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,因为数据太大了。

有没有人为我提供简单的解决方案?

谢谢

2 个答案:

答案 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

Max size of URL parameters in _GET

答案 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']

来访问以前的POST变量

PS:$_GET$_POST可在此处互换