Renzo Clavijo wrote:
I know it's very simple but the question is: How can I erase the
values held in $_REQUEST such that when I press F5 or I click "Reload"
there are no messages sent again?
<?php
if(isset($_REQUEST['send_mail'])){
mail($_REQUEST['address_mail'],$_REQUEST['subject']
$_REQUEST['message']);
}
benmoreassynt wrote:
I would try something like this:
if(isset($_REQUEST['send_mail']))
{
mail($_REQUEST['address_mail'],$_REQUEST['subject']
$_REQUEST['message']);
unset($_REQUEST);
}
That should wipe all the variables in $_REQUEST before the user clicks
reload. It will not work on a global variable if you use it inside a
function. There are other ways to do the same thing, but I think that
should do it.
No. That won't work. The variables will be sent to the server all over
again when the user reloads after sending the original email.
I guess the simplest solution is to do a redirect to a confirmation page
after sending the mail. That way a reload will not be reloading the post
but the confirmation page.
This won't prevent malicious spam. For that you will need to issue a
token and track submissions by token (and/or IP address).
(Also, please note:
--Your <form> tag lacks an 'action' property.
--You are not doing any validation of your input fields.
--By allowing the user to input the TO address, you are essentially
offering all the word an open relay for transmitting spam. This makes
you evil. May you soon be cut off by your ISP. Or repent and find
salvation :)
)
-J
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php