POST in PHP AND redirect the user to that page?

梦想与她 提交于 2019-12-20 02:11:46

问题


I'm a bit confused. How do I POST data to a URL and then redirect the user's browser to that location - all in one operation?

I see

header('Location: page.php?' . http_build_query($_POST)); 

but that is GET, not POST and ppl think thats really bad practice - PHP open another webpage with POST data (why?)

My kludgy workflow involves setting up a form and then submitting it via javascript - anything has to be better than that...

I think I can do a set of header() stmts but this action happens for the user way after the page has been geenrated, so i dont think that would work


回答1:


You cannot redirect POST requests. As simple as that. Any redirect will always turn into a GET request.

If you want to receive POST data, then send that data to another page, you have two choices:

  • if both pages are on the same server, use sessions to save the data server-side, don't make the client carry it over
  • if the destination is on another server and you need to send the client there together with the data, set up another intermediate form like you are



回答2:


Use AJAX to save the data before you leave the page. Use the answer you get back to fire a redirection to the new url right within the current page. Don't be affraid of Javascript and ajax. Try this light AJAX library: http://www.openjs.com/scripts/jx/



来源:https://stackoverflow.com/questions/5546121/post-in-php-and-redirect-the-user-to-that-page

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!