Server - Variable funktioniert nicht

Hallo zusammen,

Ich habe ein Script um nicht andauernd zwischen Test- und Liveserver die Dateien verändern bzw. austauschen zu müssen.

Die Datei wird als Include hinzugeldaden

Auf dem Testsystem funktioniert es zwar, aber ich erhalte andauernd die Fehlermeldung:

Undefinierte Variable $Server_Name in Zeile 4

Ich weis zwar genau was damit gemeint ist, nur wie soll ich eine Variable definieren deren Inhalt ich noch nicht kenne ausser mit Leerzeichen?

<?
// Universalzugang - Meine Homepage und Localhost-Server
$MeineHP = "meine-domain.de";            # Adresse der Homepage/Domain ohne "www"
    if ($SERVER_NAME == $MeineHP) {

        # Werte für Homepage/Domain angeben!

        $BenutzerName  = "Testeingabe";      # Username für die MySQL-DB
        $Passwort      = "Testeingabe";     # Kennwort für die MySQL-DB
        $Server        = "Testeingabe";   # Adresse/IP/Name des MySQL-Server
        $Datenbank     = "Testeingabe";       # Name der Datenbank
    } 
        else {
        
        # Werte auf Testumgebung/Localhost angeben!

        $Server        = "localhost";    // MySQL-Server
        $BenutzerName  = "Testeingabe";        // MySQL-Nutzer
        $Passwort      = "Testeingabe";        // MySQL-Kennwort
        $Datenbank     = "Testeingabe";        // Standarddatenbank
    } 
?>

Die Variable $SERVER_NAME müsste doch so (in der If - Schleife) abzufragen sein, ohne sie vorher zu definieren, oder ist hier ein Fehler den ich einfach nicht sehe?

Mal versucht, der Abfrage ein if(isset ($SERVER_NAME)) voranzustellen?

if-schleife.de

Meinst du vielleicht die Variable $_SERVER[‚SERVER_NAME‘]?
Guckst Du hier!

Hallo Tronjer, Struppi, Kratzbaum

Vielen Dank für Eure’ Tipps, das löste endlich mal wieder den Knoten im Hirn wenn man zu lange vor der Kiste und demselben Proplem sitzt.

Heute Vormittag hat es dann endlich ‚Klick‘ gemacht und die Lösung war da.

Mit der isset - Abfrage wäre es auch gegangen, ich habe mich dann aber für die Variante $_SERVER[‚SERVER_NAME‘] entschieden, auf die auch Kratzbaum inzwischen hingewiesen hat.

Hier nochmal der komplette funktionierende Code (Zugangsdaten müssen natürlich geändert werden) falls es jemanden interessiert oder es brauchen kann.



<?
// Universalzugang - Meine Homepage und Localhost-Server

     $HomepageServer = $_SERVER['SERVER_NAME']; 

   if ($HomepageServer == 'meine-domain.de') {

        # Werte für Homepage/Domain angeben!

        $BenutzerName  = "Testeingabe";      # Username für die MySQL-DB
        $Passwort      = "Testeingabe";     # Kennwort für die MySQL-DB
        $Server        = "Testeingabe";   # Adresse/IP/Name des MySQL-Server
        $Datenbank     = "Testeingabe";       # Name der Datenbank
    } 
        else {
        
        # Werte auf Testumgebung/Localhost angeben!

        $BenutzerName  = "Testeingabe";        // MySQL-Nutzer
        $Passwort      = "Testeingabe";          // MySQL-Kennwort
        $Server        = "localhost";               // MySQL-Server
        $Datenbank     = "Testeingabe";        // Standarddatenbank
    }
?>

Vielen Dank nochmals an alle die sich die Mühe gemacht haben, mir einen Tip und Denkanstoss zu geben.

Wenn $SERVER_NAME gesetzt ist, nutzt dein Skript wohl register globals. Das ist nicht zu empfehlen und veraltet.

Auf solcherlei Daten sollte ausschließlich über die superglobalen Variablen zugegriffen werden.