Mailinglisten-Archive |
[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