htaccessing some directories for dev using cvs tree as www tree ;)
[lhc/web/wiklou.git] / includes / WebRequest.php
index 4fc7f94..bcec3c0 100644 (file)
@@ -1,4 +1,23 @@
 <?php
+# Deal with importing all those nasssty globals and things
+# 
+# Copyright (C) 2003 Brion Vibber <brion@pobox.com>
+# http://www.mediawiki.org/
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or 
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# http://www.gnu.org/copyleft/gpl.html
 
 # Hypothetically, we could use a WebRequest object to fake a
 # self-contained request.
@@ -6,7 +25,6 @@
 ## Enable this to debug total elimination of register_globals
 #define( "DEBUG_GLOBALS", 1 );
 
-# Deal with importing all those nasssty globals and things
 class WebRequest {
        function WebRequest() {
                if( defined('DEBUG_GLOBALS') ) error_reporting(E_ALL);
@@ -44,12 +62,15 @@ class WebRequest {
                        if( defined( "DEBUG_GLOBALS" ) ) {
                                die( "DEBUG_GLOBALS: Turn register_globals off!" );
                        }
-               } else {
+               }
+               /*
+               else {
                        if( !defined( "DEBUG_GLOBALS" ) ) {
                                # Insecure, but at least it'll run
                                import_request_variables( "GPC" );
                        }
                }
+               */
        }
        
        function getGPCVal( &$arr, $name, $default ) {
@@ -94,6 +115,18 @@ class WebRequest {
                return $this->getGPCText( $_REQUEST, $name, $default );
        }
        
+       function getValues() {  
+               $names = func_get_args();
+               $retVal = array();
+               foreach ( $names as $name ) { 
+                       $value = $this->getVal( $name );
+                       if ( !is_null( $value ) ) {
+                               $retVal[$name] = $value;
+                       }
+               }
+               return $retVal;
+       }
+
        function wasPosted() {
                return $_SERVER['REQUEST_METHOD'] == 'POST';
        }
@@ -101,6 +134,35 @@ class WebRequest {
        function checkSessionCookie() {
                return isset( $_COOKIE[ini_get("session.name")] );
        }
+       
+       function getRequestURL() {
+               return $_SERVER['REQUEST_URI'];
+       }
+       
+       function getFullRequestURL() {
+               global $wgServer;
+               return $wgServer . $this->getRequestURL();
+       }
+       
+       # Take an arbitrary query and rewrite the present URL to include it
+       function appendQuery( $query ) {
+               global $wgTitle;
+               $basequery = "";
+               foreach( $_GET as $var => $val ) {
+                       if( $var == "title" ) continue;
+                       $basequery .= "&" . urlencode( $var ) . "=" . urlencode( $val );
+               }
+               $basequery .= "&" . $query;
+               
+               # Trim the extra &
+               $basequery = substr( $basequery, 1 );
+               return $wgTitle->getLocalURL( $basequery );
+       }
+       
+       function escapeAppendQuery( $query ) {
+               return htmlspecialchars( $this->appendQuery( $query ) );
+       }
+       
 }
 
-?>
\ No newline at end of file
+?>