Skip to content
Snippets Groups Projects
Select Git revision
  • 79b8d67627d7a9437414d482982fe686ab17ab40
  • master default protected
2 results

request.php

Blame
  • request.php 2.80 KiB
    <?php
    /**
     * Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
     * This file is licensed under the Affero General Public License version 3 or
     * later.
     * See the COPYING-README file.
     */
    
    class OC_Request {
    	/**
    	 * @brief Returns the server host
    	 * @returns the server host
    	 *
    	 * Returns the server host, even if the website uses one or more
    	 * reverse proxies
    	 */
    	public static function serverHost() {
    		if(OC::$CLI) {
    			return 'localhost';
    		}
    		if(OC_Config::getValue('overwritehost', '')<>''){
    			return OC_Config::getValue('overwritehost'); 
    		}
    		if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
    			if (strpos($_SERVER['HTTP_X_FORWARDED_HOST'], ",") !== false) {
    				$host = trim(array_pop(explode(",", $_SERVER['HTTP_X_FORWARDED_HOST'])));
    			}
    			else{
    				$host=$_SERVER['HTTP_X_FORWARDED_HOST'];
    			}
    		}
    		else{
    			$host = $_SERVER['HTTP_HOST'];
    		}
    		return $host;
    	}
    
    
    	/**
    	* @brief Returns the server protocol
    	* @returns the server protocol
    	*
    	* Returns the server protocol. It respects reverse proxy servers and load balancers
    	*/
    	public static function serverProtocol() {
    		if(OC_Config::getValue('overwriteprotocol', '')<>''){
    			return OC_Config::getValue('overwriteprotocol'); 
    		}
    		if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
    			$proto = strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']);
    		}else{
    			if(isset($_SERVER['HTTPS']) and !empty($_SERVER['HTTPS']) and ($_SERVER['HTTPS']!='off')) {
    				$proto = 'https';
    			}else{
    				$proto = 'http';
    			}
    		}
    		return $proto;
    	}
    
    	/**
    	 * @brief get Path info from request
    	 * @returns string Path info or false when not found
    	 */
    	public static function getPathInfo() {
    		if (array_key_exists('PATH_INFO', $_SERVER)) {
    			$path_info = $_SERVER['PATH_INFO'];
    		}else{
    			$path_info = substr($_SERVER['REQUEST_URI'], strlen($_SERVER['SCRIPT_NAME']));
    			// following is taken from Sabre_DAV_URLUtil::decodePathSegment