That what's the approach outlined in 1). I was wondering if that network trip can be avoided.
Thanks, Harry ----- Original Message ----- From: "French, Shawn" <[EMAIL PROTECTED]> To: "'Harry Zhu'" <[EMAIL PROTECTED]>; <> Sent: Friday, August 09, 2002 11:49 AM Subject: RE: Is it possible to change the browser's address/location URL without Redirect? > One option: > > If there's an erro in form 2, > Save the user's form data in some session variables > Then use a <META HTTP-EQUIV="Refresh" CONTENT="0; URL=/step2> tag to get the > user's browser to redirect. > Then populate the form with the data and error message you saved in his/her > session object. > > There are obviously many other ways to do this... but if you're using some > sort of session data structure, this is probably the easiest way to get it > done. > > Shawn > > > > > -----Original Message----- > > From: Harry Zhu [mailto:[EMAIL PROTECTED]] > > Sent: August 9, 2002 2:26 PM > > To: [EMAIL PROTECTED] > > Subject: Is it possible to change the browser's address/location URL > > without Redirect? > > > > > > Looks like my explanation is too long or too bad. > > The simple idea is in page step 1, after the > > > > <form action=/step/2 method=post>...</form> > > > > submitted, I want the browser show something > > http://www.example.com/step/1/error, instead of > > http://www.example.com/step/2, > > if there is a need for user to correct the data submitted. > > > > It might be accomplished by using one of the approaches > > outlined below, but > > I was wondering if there's other way that can save the overhead of the > > write/read or resend the data, and the re-process. Probably > > not much we can > > do if the URL displayed in the browser's address/location bar > > depends only > > on the action value of the form submitted, not based on the > > server response? > > > > Harry > > > > > > > > ----- Original Message ----- > > From: "Harry Zhu" <[EMAIL PROTECTED]> > > To: "mod_perl list" <[EMAIL PROTECTED]> > > Sent: Thursday, August 08, 2002 4:22 PM > > Subject: Can I change the browser's address/location? > > > > > > > Suppose I have a generic content handler to handle requst > > > /step/1, /step/2, ..., /step/n > > > > > > <Location /step> > > > SetHandler perl-script > > > PerlHandler MyHandler > > > > > > </Location> > > > > > > #MyHandler.pm > > > package MyHandler; > > > sub handler { > > > my $r=shift; > > > my $step = substr($r->path_info(),1); > > > > > > #do something before fetch the content > > > > > > #fetch content: usually include a form that will assign action > > > /step/($step+1) > > > > > > } > > > > > > So if everything goes well, the user will follow through > > from step 1, step > > > 2, until fnish. > > > Now if in the "#do something ..." part, something is wrong, it will > > usually > > > require user go back to the same step, for example, to fill the form > > again. > > > The way my old cgi script does is just generate the form > > with prefilled > > > value plus some error message indicate what's wrong. It > > works ok but the > > > browser location will show /step/($step+1) while it actually is > > /step/$step. > > > Now that I am working it on mod-perl I thought I should be > > able to do > > > something about it. I briefly browsed the 2 mod-perl books (eagle, > > > cookbook), and could not found a simple solution yet (or I > > missed it?). I > > > was think using one of the folowing might work:z > > > 1) save the request data in a temp file and redirect or > > http-refresh to > > > /step/$step?$session_id or /step/$step/error?$session_id > > > Remember the content is dynamic and depend on the input > > form data, so > > simple > > > redirect may not work. > > > Looks like Apache will not post the form data when redirect > > with Location? > > > > > > 2) print a short form with hidden data and assign > > action=/step/$step/error > > > then submit right away (onload=form.submit()?) > > > > > > Does anybody have a simple solution, e.g. without redirect? > > Is it possible > > > to change the URI showing in the browser's address/location bar? > > > > > > I would appreciated if somebody can pointer me to the right > > direction. > > > > > > Harry > > > > > > > > > > >