php.de

Zurück   php.de > Webentwicklung > Server, Hosting und Workstations

Server, Hosting und Workstations Server-Konfigurationsdateien (.htaccess/httpd.conf) und Arbeiten auf Serverebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.12.2011, 20:50  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Was kommt denn bei $_SERVER['REQUEST_URI'] oder allgemein $_SERVER an?
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.12.2011, 12:30  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Eingabe folgende URI http://localhost/WendtNeu/User/Admin/free

Ausgabe $_SERVER
Code:
Array (     [REDIRECT_MIBDIRS] => C:/xampp/php/extras/mibs     [REDIRECT_MYSQL_HOME] => \xampp\mysql\bin     [REDIRECT_OPENSSL_CONF] => C:/xampp/apache/bin/openssl.cnf     [REDIRECT_PHP_PEAR_SYSCONF_DIR] => \xampp\php     [REDIRECT_PHPRC] => \xampp\php     [REDIRECT_TMP] => \xampp\tmp     [REDIRECT_STATUS] => 200     [MIBDIRS] => C:/xampp/php/extras/mibs     [MYSQL_HOME] => \xampp\mysql\bin     [OPENSSL_CONF] => C:/xampp/apache/bin/openssl.cnf     [PHP_PEAR_SYSCONF_DIR] => \xampp\php     [PHPRC] => \xampp\php     [TMP] => \xampp\tmp     [HTTP_HOST] => localhost     [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0     [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8     [HTTP_ACCEPT_LANGUAGE] => de-de,de;q=0.8,en-us;q=0.5,en;q=0.3     [HTTP_ACCEPT_ENCODING] => gzip, deflate     [HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7     [HTTP_CONNECTION] => keep-alive     [HTTP_COOKIE] => PHPSESSID=3hd3sclmqm25gun4jci8sq3890     [PATH] => C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\     [SystemRoot] => C:\Windows     [COMSPEC] => C:\Windows\system32\cmd.exe     [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC     [WINDIR] => C:\Windows     [SERVER_SIGNATURE] => Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1 Server at localhost Port 80      [SERVER_SOFTWARE] => Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1     [SERVER_NAME] => localhost     [SERVER_ADDR] => 127.0.0.1     [SERVER_PORT] => 80     [REMOTE_ADDR] => 127.0.0.1     [DOCUMENT_ROOT] => D:/Softwareentwicklung/Webentwicklung     [SERVER_ADMIN] => postmaster@localhost     [SCRIPT_FILENAME] => D:/Softwareentwicklung/Webentwicklung/WendtNeu/index.php     [REMOTE_PORT] => 53458     [REDIRECT_URL] => /WendtNeu/User/Admin/free     [GATEWAY_INTERFACE] => CGI/1.1     [SERVER_PROTOCOL] => HTTP/1.1     [REQUEST_METHOD] => GET     [QUERY_STRING] =>      [REQUEST_URI] => /WendtNeu/User/Admin/free     [SCRIPT_NAME] => /WendtNeu/index.php     [PHP_SELF] => /WendtNeu/index.php     [REQUEST_TIME] => 1324121326 )
Eingabe mit der URI http://localhost/WendtNeu/index.php?User/Admin/free

Ausgabe $_SERVER
Code:
Array (     [MIBDIRS] => C:/xampp/php/extras/mibs     [MYSQL_HOME] => \xampp\mysql\bin     [OPENSSL_CONF] => C:/xampp/apache/bin/openssl.cnf     [PHP_PEAR_SYSCONF_DIR] => \xampp\php     [PHPRC] => \xampp\php     [TMP] => \xampp\tmp     [HTTP_HOST] => localhost     [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0     [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8     [HTTP_ACCEPT_LANGUAGE] => de-de,de;q=0.8,en-us;q=0.5,en;q=0.3     [HTTP_ACCEPT_ENCODING] => gzip, deflate     [HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7     [HTTP_CONNECTION] => keep-alive     [HTTP_COOKIE] => PHPSESSID=3hd3sclmqm25gun4jci8sq3890     [PATH] => C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\     [SystemRoot] => C:\Windows     [COMSPEC] => C:\Windows\system32\cmd.exe     [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC     [WINDIR] => C:\Windows     [SERVER_SIGNATURE] => Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1 Server at localhost Port 80      [SERVER_SOFTWARE] => Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1     [SERVER_NAME] => localhost     [SERVER_ADDR] => 127.0.0.1     [SERVER_PORT] => 80     [REMOTE_ADDR] => 127.0.0.1     [DOCUMENT_ROOT] => D:/Softwareentwicklung/Webentwicklung     [SERVER_ADMIN] => postmaster@localhost     [SCRIPT_FILENAME] => D:/Softwareentwicklung/Webentwicklung/WendtNeu/index.php     [REMOTE_PORT] => 53633     [GATEWAY_INTERFACE] => CGI/1.1     [SERVER_PROTOCOL] => HTTP/1.1     [REQUEST_METHOD] => GET     [QUERY_STRING] => User/Admin/free     [REQUEST_URI] => /WendtNeu/index.php?User/Admin/free     [SCRIPT_NAME] => /WendtNeu/index.php     [PHP_SELF] => /WendtNeu/index.php     [REQUEST_TIME] => 1324121408 )
Ich kann leider keinen Hinweis finden der mich das Problem lösen.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 17.12.2011, 13:22  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Zitat:
/WendtNeu/User/Admin/free
vs.
/WendtNeu/index.php?User/Admin/free
Dein Code kann doch nur eine der beiden Varianten bearbeiten, oder?
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 18.12.2011, 12:48  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
Dein Code kann doch nur eine der beiden Varianten bearbeiten, oder?
Das war der richtige Schuppser. Jetzt funktioniert es in beiden Varianten. Falls mal mod_rewrite nicht zur Verfügung steht funktioniert es auf php herkömmliche Weise und ansonsetn auf die mod_rewrite Variante.

Danke für die Hilfe.

Hier noch der Code, auch wenn man es sicher anders und besser machen kann.

PHP-Code:
<?php
/**
 * 
 *     @class Url
 *     @author LIT-WEB
 *     @package classes
 *     @subpackage Url
 *     
 *     die Klasse löst eine URL anhand des REQUEST_URIS der vom Server gesendet wird auf.
 *     dadurch werden Sprache, entweder als erster Festparamter oder als Options Listen Parameter
 *     ausgelesen, sowie auch die Applikationskomponenten Mdoul, Controller und Action
 */
class Url
{
    
/**
     * 
     *     Enthält den REQUEST_URI
     *     @var String
     */
    
protected $_uri;
    
    
/**
     * 
     *     Enthält den Wert des Sprachparameters
     *     @var String
     */
    
protected $_lang;
    
    
/**
     * 
     *     Enthält den Modulnamen
     *     @var String
     */
    
protected $_modul;
    
    
/**
     * 
     *     Enthält den Controllernamen
     *     @var String
     */
    
protected $_controller;
    
    
/**
     * 
     *     Enthält den Actionnamen
     *     @var String
     */
    
protected $_action;
    
    
/**
     * 
     *     Enthält einen Optionslistenwert
     *     @var String
     */
    
protected $_option;
    
    
/**
     * 
     *     Enthält die gesamte URL Optionsliste
     *     @var Array
     */
    
protected $_options = array();
    
    
/**
     * 
     *     Enthält den Pfadtreener
     *     @var Char
     */
    
protected $_pathSeperator;
    
    
/**
     * 
     *     Initialisierung von Objekt Variablen
     *     @param $pPathSeperator:Charachter Pfadtrenner
     */
    
public function __construct($pPathSeperator null)
    {
        
$this->_pathSeperator = ($pPathSeperator !== null)
            ? 
$pPathSeperator
            
'/';
        
$this->_buildMvcParams();
    }
    
    
/**
     * 
     *     Auflösen der URL anhand des REQUEST_URI für das ansteuern von MVC Komponenten
     *     @return Url
     */
    
protected function _buildMvcParams()
    {
        
$lang = array('de''en''fr''spn');
        
        if(
preg_match('#\?#'$_SERVER['REQUEST_URI'])) {
            
$this->_uri substr(strstr($_SERVER['REQUEST_URI'].$this->_pathSeperator'?'), 1);
        } else {
            
$this->_uri substr($_SERVER['REQUEST_URI'].$this->_pathSeperator1);
            
$this->_uri substr(strstr($this->_uri'/'), 1);
        }
        
        
$lPos strpos($this->_uri$this->_pathSeperator);
        
$this->_lang substr($this->_uri0$lPos);;
        
        if(!
in_array($this->_lang$lang)) {
            
$this->_lang null;
            
$mPos strpos($this->_uri$this->_pathSeperator);
            
$this->_modul substr($this->_uri0$mPos);
            
$urlRest $this->_uri;
        } else {
            
//Modulposition
            
$urlRest substr($this->_uri, ($lPos 1));
            
$mPos strpos($urlRest$this->_pathSeperator);
            
$this->_modul substr($urlRest0$mPos);
        }
        
        
//Controllerposition
        
$urlRest substr($urlRest, ($mPos 1));
        
$cPos strpos($urlRest$this->_pathSeperator);
        
$this->_controller substr($urlRest0$cPos);
        
        
//Actionposition
        
$urlRest substr($urlRest, ($cPos 1));
        
$aPos strpos($urlRest$this->_pathSeperator);
        
$this->_action substr($urlRest0$aPos);
        
        
//Url Parameter
        
$urlRest substr($urlRest, ($aPos 1));
        
$this->_option $urlRest.$this->_pathSeperator;
        
        
$this->_options $this->getOptions();
        
        return 
$this;
    }
    
    
/**
     * 
     *     Rückgabe des unbehandelten REQUEST_URI
     *     @return String
     */
    
public function getUri()
    {
        return 
$this->_uri;
    }
    
    
/**
     * 
     *     Rückgabe des Language Parameters
     *     @return null oder String
     */
    
public function language()
    {
        return 
$this->_lang;
    }
    
    
/**
     * 
     *     Rückgabe des Modulparamters
     *     @return String
     */
    
public function modulName()
    {
        return 
$this->_modul;
    }
    
    
/**
     * 
     *     Rückgabe des Controllerparameters
     *     @return String
     */
    
public function controllerName()
    {
        return 
$this->_controller;
    }
    
    
/**
     * 
     *     Rückgabe des Action parameters
     *     @return String
     */
    
public function actionName()
    {
        return 
$this->_action;
    }
    
    
/**
     * 
     *     Rückgabe der kompletten URL Parameterliste
     *     @return Array
     */
    
public function options()
    {
        return 
$this->_options;
    }
    
    
/**
     * 
     *     Auflösung der in der URL gelisteten Parameter
     *     @return Array
     */
    
public function getOptions()
    {
        
$opts explode('/'substr($this->_option0, -2));
        
$optKey = array();
        
$optValue = array();
        
$options = array();
        
        for(
$i 0$i count($opts); $i++) {
            
            if(
=== $i%2) {
                
$optKey[] = $opts[$i];
            } else {
                
$optValue[] = $opts[$i];
            }
        }
        
        foreach(
$optKey as $key => $value) {
            
            foreach(
$optValue as $vKey => $vValue) {
                
$options[$value] = $optValue[$key];
                
                if(
$options[$value] == "") {
                    unset(
$options[$value]);
                }
            }
        }
        
        return 
$options;
    }
    
    
/**
     * 
     *     Rückgabe eines bestimmten Url Parameters anahnd eines Container Schlüssels
     *     @param String
     */
    
public function getOption($pOption)
    {
        return 
$this->_options[$pOption];
    }
}

Gruß der Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 18.12.2011, 15:35  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Halte die Implementierung für nicht besonders klug. Gründe:
  • Im Konstruktor passiert magic und die Abhängigkeiten werden nicht direkt und offensichtlich erkenntlich dargestellt.
  • Der Klassennamen Url offeriert nicht das, was intern passiert (z.B. MVC sollte nicht darin, sondern aussen abgebildet werden). Die Kapselung ist also verletzt.
  • Formattierung und Repräsentation sind vermischt. IMHO sollte Abstraktion von Schema getrennt sein. Deutlicher Indikator dafür ist der optionale Parameter im Konstruktor.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 19.12.2011, 12:15  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
Halte die Implementierung für nicht besonders klug. Gründe:
  • Im Konstruktor passiert magic und die Abhängigkeiten werden nicht direkt und offensichtlich erkenntlich dargestellt.
  • Der Klassennamen Url offeriert nicht das, was intern passiert (z.B. MVC sollte nicht darin, sondern aussen abgebildet werden). Die Kapselung ist also verletzt.
  • Formattierung und Repräsentation sind vermischt. IMHO sollte Abstraktion von Schema getrennt sein. Deutlicher Indikator dafür ist der optionale Parameter im Konstruktor.
Ok danke für die Antwort. Könntest du mir dann vieleicht einen Weg zur Verbessrung nenn und aufzeigen?
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 19.12.2011, 23:51  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Schau dir mal http://adventurephpfra.svn.sourcefor...63&view=markup an.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mod_rewrite server_protocol, redirect_mibdirs

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:13 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum