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