|
Posted by d on 02/15/06 01:30
"frizzle" <phpfrizzle@gmail.com> wrote in message
news:1139946264.842789.257780@o13g2000cwo.googlegroups.com...
>
> d wrote:
>> "tmax" <tmax@comcast.net> wrote in message
>> news:8281b$43f21506$481a8e8e$18008@PGTV.COM...
>> > PHP Pros:
>> >
>> > I have a simple html form that submits data to a php script, which
>> > processes it, and then redisplays the same page, but with a "thank you"
>> > message in place of the html form. This is all working fine. However,
>> > when refresh the browser, I get the following message displayed:
>> >
>> > "The page you are trying to view contains POSTDATA. If you resend the
>> > data, any action the form carried out (such as as search or online
>> > purchse) will be repeated. To resend the data, click OK. Otherwise,
>> > click
>> > Cancel."
>> >
>> > Obviously I don't want my users to resend the data to me.
>> >
>> > What do I need to do code-wise so that when the browser is refreshed,
>> > the
>> > page is reloaded without this message being displayed.
>> >
>> > Thanks in advance.
>>
>> In the script to which the form submits, store the $_POST data somewhere
>> else, say a session. Then, use this:
>>
>> header("Location: http://host/path/to/script.php");
>> exit();
>>
>> to bounce the user to another page. Most browsers know to not re-submit
>> the
>> post data to this new page. The new script can even be the originating
>> one - as long as you use the location: header, you'll be fine. You can
>> then
>> access the submitted data wherever you stored it.
>>
>> PS. if you're using a session to store the data, call
>> session_write_close()
>> before the header() call, otherwise nasty things happen on some browsers.
>>
>> dave
>
> Just curious, but is there / would you recommend a good alternative for
> the Sessions?
Databases or files spring to mind :)
> Frizzle.
>
[Back to original message]
|