Re: Forms and destroying values

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Beauford wrote:
So the answer is, there is no way to destroy the values. Question then, what
is unset() used for as it doesn't seem to do anything? With a language as
good as PHP I though there would be some way to do this. I have got a
workaround, but that's exactly what it is - a work around. I am also still
confused as to why giving them a null value doesn't work.

You need to get it clear in your head when PHP is sending data to the client and when it is not. Your assumption is basically that the data in $_POST is actually *connected* to the form displayed in the browser. This is not the case. When you change the contents of $_POST it has no effect on what the browser displays or uses since it's not actually sent to the browser unless you specifically output it in the form of a, erm, form.

When the user hits refresh, or uses the back button it is up to the browser what it does. In the case of refresh, if the page being refreshed was created in response to a form being submitted the browser will ask the user if they want to resubmit the data. When using the back button the browser will usually use its cached copy of the page rather than hitting the server again.

Hope that makes it clearer.

-Stut

-----Original Message-----
From: Satyam [mailto:Satyam@xxxxxxxxxxxxx] Sent: January 12, 2007 8:21 AM
To: Beauford; PHP
Subject: Re:  Forms and destroying values

This issue comes over and over again. The trick, as I learned from this list, is to send a redirect to the browser to a confirmation page, so the browser remembers the page redirected to and completely ignores the page that made the redirection so that neither a refresh nor going back to it can repeat the operation.

So, if the database update has been succesful, use the header() function to send a 'location' header along with enough arguments in the URL to display a significant confirmation message but make sure that it is different from the URL that makes the database update. It will be this address, not the post that made the database update, that the browser will remember.

Satyam



----- Original Message -----
From: "Beauford" <phpuser@xxxxxxxxxx>
To: "PHP" <php-general@xxxxxxxxxxxxx>
Sent: Friday, January 12, 2007 9:27 AM
Subject:  Forms and destroying values


Hi,

How do I stop contents of a form from being readded to the
database if the
user hits the refresh button on their browser.

I have tried to unset/destroy the variables in several
different ways, but
it still does it.

After the info is written I unset the variables by using
unset($var1,
$var2,
$etc). I have also tried unset($_POST['var1'], $_POST['var2'],
$_POST['etc']). I even got deperate and tried $var = ""; or
$_POST['var']
=
"";

What do I need to do to get rid of these values???
Obviously I am missing
something.

Any help is appreciated.

Thanks

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php





--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux