Well, I've had the same problems with an "Send SMS" routine and it caused
the message to get sent twice or more if the user refreshed.

I fixed this by adding the following logic:

If there are post-data, put this into a session variable (an array of
key=>val) and reload the page.
if there are no post-data put the session-variable array into the current
scope again using a foreach loop, and then delete the session variable, so
data won't be processed again.  Works like a charm, and doesn't include
javascript. Don't know if it's excactly right for you, so you might have to
modify it a bit.

(From memory only, might be typo's:)

<snip>
<?
session_start();
session_register( pre_posted );

if (count( $HTTP_POST_VARS)>=1) {
 foreach( $HTTP_POST_VARS as $k=>$v ) {
  $pre_posted[$k] = $v;
 }
 header( "Location: $PHP_SELF" );
 exit;
} elseif ( is_array( $pre_posted )) {
 foreach( $pre_posted as $k=>$v ) {
    $$k = $v;
 }
 unset( $pre_posted );
}

echo "<b>You posted: $Test</b><br>Want to refresh?";
?>

<form method=post>
<input name='Test' value='test' size=20>
<input type=submit>
</form>

</snip>
----- Original Message -----
From: "Bruin, Bolke de" <[EMAIL PROTECTED]>
To: "'Jon Haworth'" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Tuesday, March 06, 2001 2:29 PM
Subject: RE: [PHP] no-resubmit on reload/refresh


> That's not really what I want
>
> http://pub.alxnet.com/guestbook?id=2000000
>
> (this one works)
>
> does it without.
>
> On my page I am using a child window to reload the parent window
> , so your solution can't be used unfortunately.
>
> Bolke
>
> -----Oorspronkelijk bericht-----
> Van: Jon Haworth [mailto:[EMAIL PROTECTED]]
> Verzonden: Tuesday, March 06, 2001 2:01 PM
> Aan: Bruin, Bolke de; [EMAIL PROTECTED]
> Onderwerp: RE: [PHP] no-resubmit on reload/refresh
>
>
> Javascript? (I know it's generally horrible, but it's good for this sort
of
> thing)
>
> Stick this in your <head>...</head>:
>
>   <script language="JavaScript" type="text/javascript"><!--Begin
>   var submitcount=0;
>   function jsCheck() {
>   if (submitcount == 0) {
>      submitcount++;
>      return true;
>   } else {
>      alert("This request has already been submitted, please wait
> while it is processed.");
>      return false;
>   }
>   }
>   //End--></script>
>
> And call it from your form like this:
>
> <form name="myform" action="whatever" method="post" onSubmit="return
> jsCheck()">
>
> Voila.
>
> HTH
> Jon
>
>
>
> -----Original Message-----
> From: Bruin, Bolke de [mailto:[EMAIL PROTECTED]]
> Sent: 06 March 2001 12:53
> To: [EMAIL PROTECTED]
> Subject: [PHP] no-resubmit on reload/refresh
>
>
>
> I have a form which is submitted by a POST action.
>
> After submitting, the same page (updated though) returns
> with the form. (It's a messageboard)
>
> Now when someone refreshes/reloads the page they get the
> question if they want to resubmit the form.
> I don't want that. You get double posts this way.
>
> I know it is possible to check the input for any duplicates,
> but for example this guestbook http://pub.alxnet.com/guestbook?id=120611
>
> (hope the id works) does it differently and your browser does
> NOT if you wnat to resubmit, it just doesn't do it.
>
> Anyone knows how this works (HTTP header maybe?)
>
> cheerz
> Bolke
>
>
> **********************************************************************
> 'The information included in this Email is of a confidential nature and is
> intended only for the addressee. If you are not the intended addressee,
> any disclosure, copying or distribution by you is prohibited and may be
> unlawful. Disclosure to any party other than the addressee, whether
> inadvertent or otherwise is not intended to waive privilege or
> confidentiality'
>
> **********************************************************************
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]
>


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to