Clearly, I'm going about this all wrong. If anyone else out there who has done this wants to chime in, I'd be grateful.
Out of desperation, I tried the straightforward approach, which I know is a big hack: $arrayOfUrlParts = explode('/', $request->getParameter('redirect')); $model = $arrayOfUrlParts[0]; $action = $arrayOfUrlParts[1]; $queryString = ''; for ($i=2; $i < count($arrayOfUrlParts); $i++) { if ($i % 2 == 0 ) $queryString .= $arrayOfUrlParts[$i] . '='; if ($i % 2 != 0 ) $queryString .= $arrayOfUrlParts[$i] . '&'; } return $this->redirect($model.'/'.$action.'?'.$queryString); If I simply echo this last bit to the screen, I can see that I'm getting exactly what I need as an URL: frontend_dev.php/sfZed/zed/model/inventory/id/5 But I again get an infinite loop of redirection: "Redirect Loop Firefox has detected that the server is redirecting the request for this address in a way that will never complete." So clearly, this adjustment is suppose to be made somewhere else in the code. I'm not suppose to be working in sfGuardAuth - executeSignin (). But where else do I make this adjustment? On May 15, 11:16 pm, nick <lal...@teamlalala.com> wrote: > Interesting. I feel like I'm getting closer. Instead of getUri() I > switched to using getPathInfo() in the form: > > <form action="<?php echo url_for('@sf_guard_signin') ?>" > method="post"> > <table> > <?php echo $form ?> > </table> > <input type="submit" value="sign in" /> > <input type="hidden" name="redirect" value="<?php echo substr > ($sf_request->getPathInfo(), 1) ?>" /> > </form> > > I had to use substr() to remove the first "/" forward slash, otherwise > the address was treated as absolute from the document root. I then > changed actions.class.php like this: > > $this->finalRedirectInForm = $request->getParameter('redirect'); > return $this->redirect($this->finalRedirectInForm); > > This allowed me to escape the problem that I'd been having before - > the problem of falling into an infinite loop of redirection. Now if I > try to go here: > > frontend_dev.php/sfStar/starit/model/BailiwickQuestion/id/55 > > I'm first redirected to the login screen, and then when that submits, > I'm redirected here: > > frontend_dev.php/sfStar/starit > > I've now lost this part of the URL: > > model/BailiwickQuestion/id/55 > > So I end up with a fatal error: method called on a non-object. > > Any thoughts? > > I can not believe how hard this is. Seems like this is a fairly common > thing, that most Symfony developers probably do on most sites. > > On May 15, 10:15 pm, nick <lal...@teamlalala.com> wrote: > > > On May 15, 2:48 pm, "David Ashwood" <da...@inspiredthinking.co.uk> > > wrote: > > > > Aye - so looking at the code you need to pass the referring URL to the > > > form > > > from executeSignin. > > > In the form them append the referrer to the post request with something > > > like > > > "&referrer=url". > > > Then in the isValid codeblock - pull out the param and use it in your > > > redirect. > > > Are you suggesting (at the end of the process) handing the entire > > urldecoded() url to $this->redirect()? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "symfony users" group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to symfony-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~----------~----~----~----~------~----~------~--~---