2016-10-27 40 views
0

我在我的网站上填写了一个表单(包括文件导入输入和其他几个标准文本输入)。
我使用$ _POST()检索输入数据,然后调用php函数将数据保存在mysql数据库中。完成在header之前运行php函数()

一旦表格完成并提交按钮按下(<form action="" method="post" enctype="multipart/form-data">),我希望所有的PHP函数运行,然后,然后才重定向到另一页(使用header())。

问题是我们必须把header()调用我们的PHP函数或否则PHP返回错误。因此header()被放置在php函数之前。

这是什么样子:

if(isset($_POST)){ 
header("Location: other_page.php"); 

save_name($_post['name']); 
//... more php functions to save data(including input file) 
} 

这不是大部分时间问题,但有时似乎之前所有的PHP函数已经正常运行至极明显的页面重定向是一个大问题...

我认为这是由于函数运行时间过长(即输入文件太大?),并且重定向在函数有时间完成之前生效。

如果我可以得到一些帮助来解决这个问题,那将会很棒! =)

回答

2

问题是我们必须在调用我们的php函数之前放上header(),否则php返回错误。

不需要。您只需启用PHP的output buffering功能,这将很有可能解决您的问题。

+0

啊太棒了!我没有意识到这种可能性。所以,如果我把函数后面的header(),这是否意味着所有的函数将在重定向之前运行? – Jackymamouth

+0

是的,根据文档:*输出控制功能允许您控制从脚本发送输出的时间。这可以在几种不同的情况下使用,* ***尤其是在脚本开始输出数据后需要将标题发送到浏览器时。*** –

+0

使用上面的简单示例;你将如何实现这个? (对不起,我是新手:S) – Jackymamouth

相关问题