[Wylug-help] HTTP authentication error redirector

Gary Stainburn gary.stainburn at ringways.co.uk
Fri, 24 Jan 2003 12:43:26 +0000


On Friday 24 Jan 2003 12:28 pm, Gary Stainburn wrote:
> On Thursday 23 Jan 2003 10:41 pm, lotusblossom@blueyonder.co.uk wrote:
> > I could be wrong, but I think you just add it into the header:
> >
> > Replace your echo with :
> >
> > header("Location: http://www.stainburn.com/nymr/noentry.html?$secure");
> >
> > Hope this helps
> > Rachel
> > ---
> > Rachel Harding
> > mailto:LotusBlossom@Blueyonder.co.uk
>
> Hi Rachel,
>
> I've already tried that but it doesnt work. It simply actioned the
> Location: immediately without first prompting for the username and
> password.  (Also, the feedback form didn't render in IE!)
>
> Judging by the way wget behaves, this appears to be either because
> Apache/PHP seems to be sending the Location: header in preference to the
> other two headers, or the browser's and accepting it in preference.
>
> If I changed the header to echo it simply produced a text/plain document
> with the syntax showing.
>
> Both browsers behaved identically in all these tests.
>
> One thing I have thought about but I don't know how to do it is have a
> Javascript routine called when the page is loaded, and have it redirect the
> browser somehow.
>
> Anyone got suggestions?

Yes Gary, I've got one.  Have a go at :

__BEGIN__
  function getauth($realm) {
    if (!$realm) {
      $realm='Restricted NYMR';
    }
    global $secure;
    header("WWW-Authenticate: Basic realm=\"$realm\"");
    header('HTTP/1.0 401 Unauthorized');
    echo("<html><head><title>Unauthorised access</title></head>
<script type=\"text/javascript\" language=\"JavaScript\">

function gothere() {
  window.location.href=\"http://www.stainburn.com/nymr/noentry.html?$secure\";
}
</script>
      <body OnLoad=\"gothere()\"></body></html>");
    exit;
  }
__END__

I've tried this on Mozilla and IE5.5.

Gary

>
> Gary
>
> > Gary Stainburn <gary.stainburn@ringways.co.uk>
> > Sent by: wylug-help-admin@wylug.org.uk
> > 23/01/2003 17:00
> >
> >         To:     wylug-help@wylug.org.uk
> >         cc:
> >         Subject:        [Wylug-help] HTTP authentication error redirector
> >
> >
> > Hi folks,
> >
> > I've got the following code which works great on Netscape/Mozilla
> > browsers.
> > If the user hits the escape key at the user ID and password window, the
> > text
> > specified is rendered in the browser and the user is redirected to the
> > relevent error page.
> >
> > However, this doesn't work with MS browsers as they don't honour the
> > HTTP-EQUIV meta-tag.  Has anyone got a workaround that I could try?
> >
> >   function getauth($realm) {
> >     if (!$realm) {
> >       $realm='Restricted NYMR';
> >     }
> >     global $secure;
> >     header("WWW-Authenticate: Basic realm=\"$realm\"");
> >     header('HTTP/1.0 401 Unauthorized');
> >     echo("<html><head><title>Unauthorised access</title><meta
> > http-equiv=\"Location\"
> > content=\"http://www.stainburn.com/nymr/noentry.html?$secure\"></head><bo
> >dy
> >
> >></body></html>"); exit;
> >
> >   }

--
Gary Stainburn

This email does not contain private or confidential material as it
may be snooped on by interested government parties for unknown
and undisclosed purposes - Regulation of Investigatory Powers Act, 2000