phpbar.de logo

Mailinglisten-Archive

[php] PHPLIB and SSL (PHPLIB und SSL)

[php] PHPLIB and SSL (PHPLIB und SSL)

=?iso-8859-1?Q?Bj=F6rn_Schotte?= bjoern_(at)_baer.main.de
Mon, 27 Nov 2000 00:56:01 +0100


[German text on the bottom. Deutscher Text am Ende.]

Dear folks,

I recently had the problem within an application that
all the pages which are protected are lying in an
admin/ directory which uses PHPLIB auth for authentication.

The server is able to speak SSL, so the goal was that
if somebody calls http://www.foo.de/admin/, he should
automatically redirected to https://www.foo.de/admin/.

There were some questions on the PHPLIB mailing list and
on the german PHP mailing list so that I'm writing what
I've done to reach this goal (it was not so hard). When
extending auth, you have to write into auth_loginform():

| class foo_auth extends Auth {
|   var $classname      = "foo_auth";
|
| [...]
|  
|   function auth_loginform() {
|     global $sess;
|     global $_PHPLIB;
|     global $SCRIPT_URI,$HTTP_HOST;
|
+     if (eregi("^http://.*$",$SCRIPT_URI))
+     {
+         Header("Status: 302 Moved Temporarily");
+         Header("Location: https://".$HTTP_HOST.$sess->self_url());
+         exit;
+     }
|
|     include($_PHPLIB["libdir"] . "loginform.ihtml");
|   }
|
| [...]

Those lines marked with "+" are the solution for my problem.
Hope that helps somebody else who also has/had this problem.

------------------------------------------------------------------

Hi,

ich hatte gerade das Problem, dass ich in meiner Applikation
einen bestimmten "Admin-Bereich" (/admin/) habe, der mit der
PHPLIB auth geschützt wird.

Der Server kann jedoch SSL, so dass die Prämisse naheliegt,
dass der komplette /admin/-Bereich via SSL geschützt werden
soll, d.h. wenn jemand http://www.foo.de/admin/ aufruft, soll
zunächst ein Redirect nach https://www.foo.de/admin/ erfolgen.

Es gab bereits einige unbeantwortete Fragen hierzu auf der
PHPLIB- und auf dieser Mailingliste, so dass ich hier mal
niederschreibe, was ich getan habe (war eigtl. nicht so schwer).
Wenn man die Auth-Klasse erweitert, so muß man die Methode
auth_loginform() entsprechend abändern:

| class foo_auth extends Auth {
|   var $classname      = "foo_auth";
|
| [...]
|  
|   function auth_loginform() {
|     global $sess;
|     global $_PHPLIB;
|     global $SCRIPT_URI,$HTTP_HOST;
|
+     if (eregi("^http://.*$",$SCRIPT_URI))
+     {
+         Header("Status: 302 Moved Temporarily");
+         Header("Location: https://".$HTTP_HOST.$sess->self_url());
+         exit;
+     }
|
|     include($_PHPLIB["libdir"] . "loginform.ihtml");
|   }
|
| [...]


Die Lösung ist mit "+" markiert. Vielleicht hilft es
ja noch jemandem, der das gleiche Problem hat.

-- 
Björn Schotte ++ Heimgartenweg 11a :: D-97074 Würzburg ++ 0931/7843804
Online-Applikationen für das E-Business: <http://rent-a-phpwizard.de/>
          => inklusive Newsletter rund um PHP & das E-Biz <=
    Dienstleistungen & Preisliste: <mailto:preisliste_(at)_baer.main.de>


php::bar PHP Wiki   -   Listenarchive