Abfragen, auf welcher Subdomain man sich grad befindet
Engin
- php
hi,
ich versuch schon seit 4 Stunden eine einfache if abfrage zu bauen, die nachsieht, auf welcher Subdomain man sich grade befindet.
<?
if (isset($_SERVER['SERVER_NAME']) != "subdomain.nimmet.de") {
$aktuelles_style = '';
}
else {
$aktuelles_style = '
<link type="text/css" rel="stylesheet" href="....css" media="all" />
<link type="text/css" rel="stylesheet" href="...style.css" media="all" />';
}
?>
__________________________________________________________________________
LOL, Danke SELFHTML-Textarea zum 4.ten, dein zuhören wirkt manchmal Wunder! Mit if ohne isset.
Aber was anderes, kann mir mit so einem Konstrukt ein fehler unterlaufen, der mir grad nicht auffällt?
Ziel ist ein Styleswitch, anhand von Subdomains tausch ich einfach die style.css um, scheint mir irgendwie die leichteste Art, sowas zu bauen.
<?
if (($_SERVER['SERVER_NAME']) != "subdomain.nimmet.de") {
$aktuelles_style = '';
}
else {
$aktuelles_style = '
<link type="text/css" rel="stylesheet" href="....css" media="all" />
<link type="text/css" rel="stylesheet" href="...style.css" media="all" />';
}
?>
Hab´s gerade Online getestet und funktioniert soweit so schön, nur würde ich gerne bedenkenlos damit arbeiten.
Grüße aus H im R an alle,
Primus Enginus
hi engin シ
ich versuch schon seit 4 Stunden eine einfache if abfrage zu bauen, die nachsieht, auf welcher Subdomain man sich grade befindet.
[code …]
__________________________________________________________________________
LOL, Danke SELFHTML-Textarea zum 4.ten, dein zuhören wirkt manchmal Wunder!
Kenn ihc ^^
[code n° 2]
Aber was anderes, kann mir mit so einem Konstrukt ein fehler unterlaufen, der mir grad nicht auffällt?Ziel ist ein Styleswitch, anhand von Subdomains tausch ich einfach die style.css um, scheint mir irgendwie die leichteste Art, sowas zu bauen.
Hab´s gerade Online getestet und funktioniert soweit so schön, nur würde ich gerne bedenkenlos damit arbeiten.
Hübscher wäre wohl
<?php
$subdomain = (substr_count($_SERVER['SERVER_NAME'], '.') == 2) ? substr($_SERVER['SERVER_NAME'], 0, strpos($_SERVER['SERVER_NAME'], '.')) : '';
switch($subdomain){
case 'subdomain':
// mach was
break;
default:
// mach was anderes
}
/* oder */
?>
<style type="text/css" rel="stylesheet" href="/style/style-
<?php echo $subdomain ?>
.css" />
Ist wohl a weng leichter zu pflegen .
—Gabriel﹫
hi Willi,
hi engin シ
Ja, aber besser wäre Engin. ;)
_________________________________________________________________________
LOL, Danke SELFHTML-Textarea zum 4.ten, dein zuhören wirkt manchmal Wunder!
Kenn ihc ^^
Die Textarea werde ich ab jetzt immer Parallel während des Scriptens offen halten, wenn ich mal fragen haben sollte oder irgendwo hängen bleib.
Hübscher wäre wohl
<?php
$subdomain = (substr_count($_SERVER['SERVER_NAME'], '.') == 2) ? substr($_SERVER['SERVER_NAME'], 0, strpos($_SERVER['SERVER_NAME'], '.')) : '';
switch($subdomain){
case 'subdomain':
// mach was
break;
default:
// mach was anderes
}
?>
> `<style type="text/css" rel="stylesheet" href="/style/style-`{:.language-html}`<?php echo $subdomain ?>`{:.language-php}`.css" />`{:.language-html}
> Ist wohl a weng leichter zu pflegen .
Jau, ein Switch. Da wäre ich ja garnicht drauf gekommen. Bietet auch viel mehr möglichkeiten. Danke für den Tipp.
Grüße aus H im R an Willi,
Primus Enginus
--
![](http://nimmet.de/nimmet-bilder/valigator.gif)[Der Valligator](http://old.atomic-eggs.com/old_forum/messages/237.html#a1)
["Computer sagt Nein"](http://www.comedycentral.de/index.php/Video/Detail/vid/541168/playerMode/fullscreen)
hi Willi,
hi engin シ
Ja, aber besser wäre Engin. ;)
hi *E*ngin ;)
LOL, Danke SELFHTML-Textarea zum 4.ten, dein zuhören wirkt manchmal Wunder!
Kenn ihc ^^
Die Textarea werde ich ab jetzt immer Parallel während des Scriptens offen halten, wenn ich mal fragen haben sollte oder irgendwo hängen bleib.
:D
Hübscher wäre wohl
/* switch s.th. */
Jau, ein Switch. Da wäre ich ja garnicht drauf gekommen. Bietet auch viel mehr möglichkeiten. Danke für den Tipp.
Tja ^^
Aber ich denk da auch häufig nicht dran, Anfänger in den ersten 2 Jahren vergessen sowas halt gerne :P
Grüße aus H im R an Willi,
Grüße von G bei FR i Br an Engin ;)
Primus Enginus
—Gabriel﹫
hi Willi,
Jau, ein Switch. Da wäre ich ja garnicht drauf gekommen. Bietet auch viel mehr möglichkeiten. Danke für den Tipp.
Tja ^^
Aber ich denk da auch häufig nicht dran, Anfänger in den ersten 2 Jahren vergessen sowas halt gerne :P
Da bist du mir ein Jahr voraus, wobei mit dem Scripten hab ich erst vor kurzem angefangen, also ganz weit voraus. :)
Und die Geschichte mit dem Switch habe ich selber erst knapp vor einer Woche entdeckt.
Grüße aus H im R an Willi,
Primus Enginus
Hello,
<?
if (isset($_SERVER['SERVER_NAME']) != "subdomain.nimmet.de") {
$aktuelles_style = '';
}
else {
$aktuelles_style = '
<link type="text/css" rel="stylesheet" href="....css" media="all" />
<link type="text/css" rel="stylesheet" href="...style.css" media="all" />';
}
?>
Was ist eigentlich, wenn jemand in seinen Browser "http://Subdomain.Nimmet.DE" eintippt?
Oder wird das schon irgendwo anders abgefangen?
Per Web-Sniffer kann man jedenfalls ahnen, dass das als Hostname im Request weitergeleitet wird an den Webserver.
Liebe Grüße
Tom vom Berg
--
Nur selber lernen macht schlau
hi Tom,
Was ist eigentlich, wenn jemand in seinen Browser "http://Subdomain.Nimmet.DE" eintippt?
Oder wird das schon irgendwo anders abgefangen?
Hab´s grade mal getestet, wird vom Server abgefangen und korrigiert.
Per Web-Sniffer kann man jedenfalls ahnen, dass das als Hostname im Request weitergeleitet wird an den Webserver.
Das verstehe ich nicht so ganz.
Grüße aus H im R an Tom,
Primus Enginus
Hi,
Ziel ist ein Styleswitch, anhand von Subdomains tausch ich einfach die style.css um, scheint mir irgendwie die leichteste Art, sowas zu bauen.
Mir scheint es die "leichteste" Art, Caching zu unterbinden (wenn man es nicht vernuenftig macht).
Denn wenn du weitere externe Ressourcen wie Bilder, Scripte, etc. relativ verlinken wuerdest, muesste mein Browser sie beim Wechsel auf eine andere Subdomain erneut laden. Also muesste man die schon absolut referenzieren, und sich dabei fuer eine Domain oder die "Hauptdomain" entscheiden, wenn man den Vorteil Caching nicht ganz verlieren will.
Dafuer bekommt man dann u.U. neue Probleme, bspw. wenn der Nutzer seinen Browser so eingestellt hat, dass er Bilder von anderen Domains nicht anzeigt.
MfG ChrisB
hi ChrisB,
Mir scheint es die "leichteste" Art, Caching zu unterbinden (wenn man es nicht vernuenftig macht).
Denn wenn du weitere externe Ressourcen wie Bilder, Scripte, etc. relativ verlinken wuerdest, muesste mein Browser sie beim Wechsel auf eine andere Subdomain erneut laden. Also muesste man die schon absolut referenzieren, und sich dabei fuer eine Domain oder die "Hauptdomain" entscheiden, wenn man den Vorteil Caching nicht ganz verlieren will.
Ich weiss nicht, wie das bei Subdomains so genau funktioniert.
Ich bin bei 1und1, dort hab ich mir eine Subdomain angelegt, das Wurzelverzeichnis der Subdomain ist mein Hauptverzeichnis.
Das heisst, selbst wenn man die Subdomain aufruft, kommt die normale index Seite aus dem Wurzelverzeichnis, siehe meine neueste Domain,
Diese bedient sich derzeit noch bei
http://nimmet.de/
http://test.nimmet.de/
Ich wollte mit dem Subdomain Sheet eigentlich nur eine PDA Version einer neuen Seite machen, also komplett ohne CSS.
Grüße aus H im R an ChrisB,
Primus Enginus
Moin!
Ich bin bei 1und1, dort hab ich mir eine Subdomain angelegt, das Wurzelverzeichnis der Subdomain ist mein Hauptverzeichnis.
Das kann man aber beliebig einstellen, welche Domain aus welchem Verzeichnis gespeist wird.
- Sven Rautenberg
hi Sven,
Ich bin bei 1und1, dort hab ich mir eine Subdomain angelegt, das Wurzelverzeichnis der Subdomain ist mein Hauptverzeichnis.
Das kann man aber beliebig einstellen, welche Domain aus welchem Verzeichnis gespeist wird.
Das weiss ich, nur, sind in so einem Fall wie jetzt meinem die bedenken von Chris auch zutreffend, darum geht es mir.
Grüße aus H im R an Sven,
Primus Enginus
hi,
ach ja, hab da ein Problem. Ich sollte mein Nick unbedingt mal ändern auf Problemkind.
Folgendes Regexp Script zum "entlinken" der Aktuell aufgerufenen Seite hatte der Ingo mal gepostet, funktioniert auch bei normalen Dateien ohne Query Endung, sobald aber ein Query String hinter dem Dateinamen steht entlinkt das Script nicht mehr.
<?
$nav = '<li><a href="/meine-dateien/equipment.php?site=aktuell">Aktuelles</a></li>';
$pattern = '#<a href="'.$_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING'].'">(.+?)</a>#';
echo preg_replace($pattern,'<em>$1</em>',$nav);
echo $_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING']; /* Zur Kontrolle */
?>
Warum wird hier der Link nicht ausgetauscht?
Grüße aus H im R an Engin,
Primus Enginus
Hi,
Folgendes Regexp Script zum "entlinken" der Aktuell aufgerufenen Seite hatte der Ingo mal gepostet, funktioniert auch bei normalen Dateien ohne Query Endung, sobald aber ein Query String hinter dem Dateinamen steht entlinkt das Script nicht mehr.
<?
$nav = '<li><a href="/meine-dateien/equipment.php?site=aktuell">Aktuelles</a></li>';
$pattern = '#<a href="'.$_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING'].'">(.+?)</a>#';
echo preg_replace($pattern,'<em>$1</em>',$nav);
?>
Da das Fragezeichen in regulaeren Ausdruecken Sonderbedeutung hat, muss es durch einen vorangestellten Backslash maskiert werden, wenn es eben die nicht haben, sondern nur ein "normales" ? sein soll.
MfG ChrisB
hi ChrisB,
Danke! Mein Retter in jeder Lebenslage. :)
Da das Fragezeichen in regulaeren Ausdruecken Sonderbedeutung hat, muss es durch einen vorangestellten Backslash maskiert werden, wenn es eben die nicht haben, sondern nur ein "normales" ? sein soll.
Ich bin davon ausgegangen, das alles, was in einfachen Klammern ' steht, keine Maskierung benötigt.
Ich werd mich gleich mal ans googlen machen, was denn noch alles eine Maskierung benötigt.
Hatte gerade noch ein ähnliches Problem, als ich dabei war, den IE in den Quirks Mode zu schicken, hab es einfach mit echo gelöst.
<? echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
Da fällt mir auf, an dieser stelle gibt es keine Probleme mit den ?, warum das?
Grüße aus H im R an ChrisB,
Primus Enginus
Hi,
Da das Fragezeichen in regulaeren Ausdruecken Sonderbedeutung hat, muss es durch einen vorangestellten Backslash maskiert werden, wenn es eben die nicht haben, sondern nur ein "normales" ? sein soll.
Ich bin davon ausgegangen, das alles, was in einfachen Klammern ' steht, keine Maskierung benötigt.
Vorsicht, hier wirfst du zwei verschiedene Kontexte durcheinander!
Zum einen haben wir da mal den Kontext "PHP", in dem in Strings bestimmte Zeichen maskiert werden muessen - bspw. die Hochkommata oder Anfuehrungszeichen, mit denen der String als ganze eingeschlossen werden soll, oder auch der Backslash selber, wenn dieser sich an einer Stelle befindet, wo er als Maskierungssymbol verstanden werden koennte, aber nicht soll (bspw. in einem mit doppelten Anfuehrungszeichen eingefassten String, in dem \n als *Text* drinstehen soll - \n waere aber ein Zeilenumbruch, also \n stattdessen).
Und dann haben wir da noch den Kontext "Regulaerer Ausdruck" - in *dem* hat das Fragezeichen eine Sonderbedeutung (bspw. als "Quantifier") - also muessen wir das Fragezeichen, dass diese Sonderbedeutung hier nicht haben soll, maskieren - aber nicht "fuer" PHP, sondern fuer unseren regulaeren Ausdruck.
Ich werd mich gleich mal ans googlen machen, was denn noch alles eine Maskierung benötigt.
http://www.php.net/manual/en/language.types.string.php
http://www.php.net/manual/en/reference.pcre.pattern.syntax.php, Abschnitt "Meta-characters"
<? echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
Da fällt mir auf, an dieser stelle gibt es keine Probleme mit den ?, warum das?
*Generell* gibt es da keins, weil der Kontext hier wieder "nur" PHP ist - und dem sind Fragezeichen in Strings normalerweise ziemlich wurscht.
Mit einer Ausnahme:
Wenn die Option short_open_tags auf on stuende (sollte sie nicht, weil man nicht auf jedem Server davon ausgehen kann), dann koennte man PHP-Parserbereiche statt mit <?php ... ?> auch mit <? ... ?> einschliessen - kommt dann aber eben u.a. mit dem XML-Prolog oder aehnlichen Konstrukten in Schwierigkeiten.
MfG ChrisB
hi ChrisB,
Und dann haben wir da noch den Kontext "Regulaerer Ausdruck" - in *dem* hat das Fragezeichen eine Sonderbedeutung (bspw. als "Quantifier") - also muessen wir das Fragezeichen, dass diese Sonderbedeutung hier nicht haben soll, maskieren - aber nicht "fuer" PHP, sondern fuer unseren regulaeren Ausdruck.
http://www.php.net/manual/en/language.types.string.php
http://www.php.net/manual/en/reference.pcre.pattern.syntax.php, Abschnitt "Meta-characters"
Danke für die Erklärung und die Links. Jetzt kann ich mittlerweile ein wenig mit switch und ein wenig mit pattern arbeiten, hoffentlich kriege ich beide auch vernünftig zusammen geführt.
Da ist ja einiges zu beachten.
<? echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
Wenn die Option short_open_tags auf on stuende (sollte sie nicht, weil man nicht auf jedem Server davon ausgehen kann), dann koennte man PHP-Parserbereiche statt mit <?php ... ?> auch mit <? ... ?> einschliessen - kommt dann aber eben u.a. mit dem XML-Prolog oder aehnlichen Konstrukten in Schwierigkeiten.
Das dürfte dann bei mir der Fall sein, das die short_open_tags auf on stehen, ich hab mich schon die ganze zeit gefragt, warum die meisten hier bei PHP Scripts <?php ?>
schreiben, sollte ich mir auch mal angewöhnen.
Grüße aus H im R an ChrisB,
Primus Enginus