Author Topic: $_SERVER['SERVER_NAME'] und config.php  (Read 1943 times)

Offline dbs

  • Betatester
  • **
  • Posts: 7977
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
$_SERVER['SERVER_NAME'] und config.php
« on: April 17, 2013, 08:48:34 PM »
Moin,

woran kann es liegen, dass eine Änderung in der config.php (www. hinzufügen) sich nicht in $_SERVER['SERVER_NAME'] wiederfindet? Da erscheint kein www.

Hintergrund: WB2.8.3 wurde bei 1&1 in einem Unter-Unterordner installiert. Später eine Ebene höher verschoben und dem ControlPanel bei 1&1 gesagt welcher Ordner nun Root ist.
In der config.php wurde die Url um www. erweitert und in der htaccess alles auf www umgeleitet.

Alles funktioniert, außer ein Modul, welches im Backend Links enthält, die per $_SERVER['SERVER_NAME'] generiert werden und das www nicht drin haben.

Oder hat die config damit gar nichts zu tun?

dbs

Offline easyuser

  • Posts: 832
Re: $_SERVER['SERVER_NAME'] und config.php
« Reply #1 on: April 17, 2013, 08:56:28 PM »
Oder hat die config damit gar nichts zu tun?

Genau das trifft zu.

Das $_SERVER[] Variablen-Array kommt direkt vom Webserver (also z.B. Apache), sprich eine Ebene "über" PHP.
Das heißt man kann diese Variable niemals (!) beeinflussen durch PHP / WebsiteBaker, höchstens durch Webserver-Hacking - wobei ich das jetzt einmal außen vorlasse und äußerst schwer wird.

Offline dbs

  • Betatester
  • **
  • Posts: 7977
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: $_SERVER['SERVER_NAME'] und config.php
« Reply #2 on: April 17, 2013, 09:20:43 PM »
Hm, bevor ich hier schrieb testete ich es auf einer anderen Installation.
Auf einer code2-Seite mit var_dum($_SERVER); geschaut was bei SERVER_NAME steht. Je nach Änderung in der config erscheint da www oder verschwindet.

Offline easyuser

  • Posts: 832
Re: $_SERVER['SERVER_NAME'] und config.php
« Reply #3 on: April 17, 2013, 10:35:16 PM »
Hm, bevor ich hier schrieb testete ich es auf einer anderen Installation.
Auf einer code2-Seite mit var_dum($_SERVER); geschaut was bei SERVER_NAME steht. Je nach Änderung in der config erscheint da www oder verschwindet.

Das kann rein theoretisch eine Apache-Konfiguration sein - wie auch immer sich das auswirkt, ich hab es bis jetzt auch nicht getestet.
SERVER_NAME ist der Hostname des Servers, wo das Skript ausgeführt wird ( http://php.net/manual/de/reserved.variables.server.php ).

So, bevor ich jetzt zu weit mich aus dem Fenster lehne:
Ohne WB getestet - SERVER_NAME ist abhängig vom http-Link, den ich benutze. Wenn ich "localhost" nehme, ist ["SERVER_NAME"]=> string(9) "localhost", bei "127.0.0.1" ist es ["SERVER_NAME"]=> string(9) "127.0.0.1".
D.h. diese $_SERVER-Variable ist auch relativ... zweifelhaft (wenn ich sage so zweifelhaft wie der ganze $_SERVER-Array bekomme ich bestimmt Haue).

Offline dbs

  • Betatester
  • **
  • Posts: 7977
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: $_SERVER['SERVER_NAME'] und config.php
« Reply #4 on: April 17, 2013, 10:42:17 PM »
Glaube nun aus einigen Google-Suchen rausgelesen zu haben, dass 1&1 den $_SERVER['SERVER_NAME'] grundsätzlich ohne www ausliefert.

Wenn das so ist, dann liegts nun an mir dieses Wissen aufzuheben. Das wird schwer.  :-D
$_SERVER['HTTP_HOST'] soll wohl helfen.

Offline easyuser

  • Posts: 832
Re: $_SERVER['SERVER_NAME'] und config.php
« Reply #5 on: April 17, 2013, 10:46:16 PM »
Nimm halt die IP-Adresse. :evil:
Oder das Modul muss eben angefasst werden. Im Prinzip ist es ja nur ein "Suche in alle Dateien des Moduls nach $_SERVER-Dings und ersetze durch WB-Variable WB_URL". Das sollte kein großer Aufwand sein - und ist auch zukunftssicherer.

 

postern-length