Thanks! Here are the values that cause entry into the else-if statement:

$targetUrl === 'http://localhost/MediawikiTest/Latest Trunk 
Version/phase3/index.php/Main_Page'

$action === 'view'

$request->data === <null array>

$this->GET === <null array>

$title->mDbkeyform === 'Main_Page'

_SERVER[REQUEST_METHOD] === GET

I can see why the redirect else-if is entered (no title= parameter, $action === 
view), but the targetUrl looks OK to me. I'm not sure why the logic should 
analyze this case as a redirect.

P.S. When I previously dumped the get request using httpfox it showed (I 
haven't figured out how to configure netbeans to use FF, so this dump is from a 
separate run not using the debugger):

(Request-Line)    GET 
/MediawikiTest/Latest%20Trunk%20Version/phase3/index.php/Main_Page HTTP/1.1
Host    localhost
User-Agent    Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en-US; rv:1.9.0.11) 
Gecko/2009060214 Firefox/3.0.11
Accept    text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language    en-us,en;q=0.5
Accept-Encoding    gzip,deflate
Accept-Charset    ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive    300
Connection    keep-alive




--- On Tue, 7/21/09, Aryeh Gregor <[email protected]> wrote:

> From: Aryeh Gregor <[email protected]>
> Subject: Re: [Wikitech-l] Continually falling through InitializeSpecialCases 
> else-if
> To: "Wikimedia developers" <[email protected]>
> Date: Tuesday, July 21, 2009, 10:09 AM
> On Tue, Jul 21, 2009 at 12:34 PM, dan
> nessett<[email protected]>
> wrote:
> > else if( $action == 'view' &&
> !$request->wasPosted() &&
> >                        (
> !isset($this->GET['title']) ||
> $title->getPrefixedDBKey() != $this->GET['title'] )
> &&
> >                        !count( array_diff(
> array_keys( $this->GET ), array( 'action', 'title' ) ) )
> )
> 
> $action == 'view': This is a normal page view (not edit,
> history, etc.)
> 
> !$request->wasPosted(): This is a GET request, not
> POST.
> 
> !isset($this->GET['title']) ||
> $title->getPrefixedDBKey() !=
> $this->GET['title']: Either the title= parameter in the
> URL is unset,
> or it's set but not to the same thing as $title.
> 
> !count( array_diff( array_keys( $this->GET ), array(
> 'action', 'title'
> ) ) ) ): There is no URL query parameter other than "title"
> and
> "action" (e.g., no oldid=, diff=, . . .).
> 
> _______________________________________________
> Wikitech-l mailing list
> [email protected]
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l





      

_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to