PHP für Subdomains verwenden...Code !

D

dertimmerle

Gast
Hallo Community...

Ich bin seit kurzer Zeit sehr am proggen von Internetseiten intressiert...
Ein bisschen HTML kann ich...also <img...> <a href...> und <head>, <meta>, <frame>, <iframe> und noch ein bisschen mehr...
Allerdings, da wir unter Zeitdruck standen musste ich zum Office Publisher greifen...

Naja, meine eigentliche Frage bezieht sich auf Subdomains.
Das Problem dabei ist ja, die können nicht auch Dateien (index2.htm) gelegt werden, nur auf Verzeichnisse...Ich hab also mal ein bisschen gegooglet und hab auch was gefunden:

1. Beispiel
PHP:
   <?php
$domain = explode('.',sprintf($_SERVER['HTTP_HOST'])); 
$subdomain = strtolower($domain[0]); 
$subdomain = str_replace("http://", "", $subdomain); 
if ($subdomain != "www" and $subdomain != $domain[1])
{

if ($subdomain == 'aktuell')
{
$url = "http://....Aktuelles.htm"; 
}
elseif($subdomain == 'aboutme') {
$url = 'aboutme.php';
}
elseif($subdomain == '..') {
$url = '..';
}

header("Location: ".$url);
exit;
}
else {
# standard seite #
echo "hallo ich bin die standardseite!";
}
?>

Hierbei bekomme ich folgende Fehlermeldung:
Code:
Warning: Cannot modify header information - headers already sent by (output started at /mnt/web3/10/42/51615242/htdocs/Subdomains/index.php:1) in /mnt/web3/10/42/51615242/htdocs/Subdomains/index.php on line 19

2. Beispiel
PHP:
<?php 
$domain = explode('.',sprintf($_SERVER['HTTP_HOST']));  
$subdomain = strtolower(str_replace("http://", "", $domain[0]));  
if ($subdomain != "www" and $subdomain != $domain[1]) 
{
 
switch($subdomain) {
case 'seite1':
$url = "seite1.php";
break;

case 'aboutme':
$url = "aboutme.php";
break;

case 'whatever':
$url = "whateveryoumean.php";
break;

default:
$url = "index.php";
}

header("location: ".$url); 
}
else { 
echo "hallo ich bin die standardseite!"; 
} 
?>

Hierbei folgende Fehlermeldung:
Code:
Warning: Cannot modify header information - headers already sent by (output started at /mnt/web3/10/42/51615242/htdocs/Subdomains/index1.php:1) in /mnt/web3/10/42/51615242/htdocs/Subdomains/index1.php on line 24


Ich hab von PHP keine Ahnung ! (Trotz Visual Basic ;) )

Könnt ihr mir vielleicht die Fehler sagen ?
Und die Dateien müssen doch auch .php heißen, oder ?
Könnt ihr mir dann überhaupt mal den Sinn des immer im letzten Teil erwähnten Echo; Ich bin die Standardseite erklären ?
Was passiert beim Echo ?
Bei mir wird da irgendwie nie was angezeigt...

Danke schonmal für eure Mühe des Lesen`s :)
 
Also, bevor ich mir jetzt viele Zeilen PHP-Code zu Gemüte führe, würde ich schon mal gerne wissen, was du denn überhaupt vorhast...

Ich probiere es mal zu eraten: Du hast eine gewisse Anzahl von (X)HTML-Dateien. Nun möchtest du, dass jede über eine Subdomain erreichbar ist, lieg ich da richtig? Dann wäre die Antwort: Lege jede Datei einfach in einen Ordner mit dem Namen der Datei. Die Datei selbst nennst du dann jeweils in index.html nun. Fertig. Nix PHP.
 
Ohne genauer zu gucken was du nun genau vorhast, kann ich dir aber sagen woher die Fehlermeldung kommt. Und zwar ist das so, dass du die header()-Funktion von PHP nur benutzen kannst, wenn vorher noch kein Inhalt der eignetlichen Seite ausgegeben wurde. Dazu gehören allerdings auch Leerzeichen. Heißt: Das <?php muss das erste sein, was in der Datei überhaupt steht. Davor darf wirklich gar nichts stehen, nichtmal ein Leerzeichen.

Da ich in deinem Code keinerlei Ausgaben erkennen kann, gehe ich davon aus, dass sich vor dem öffnenden PHP-Tag tatsächlich Leerzeichen befinden (oder Zeilenumbrüche, oder sonst irgendwas), und das musst du eben ändern.

edit: Gehört das hier nicht eher ins Programmieren-Forum?
 
Zuletzt bearbeitet:
DANKE ! Das mit den Leerezeichen war es !

Zu Computer Freak`s Frage/Anmerkung:
Nein, ich arbeite doch mit Office Punlisher 2003, da kann man nur Dateiname angeben, und alle Dateien liegen in einem Verzeichnis.
Außerdem müsste ich dann ja immer jedes Verzeichnis auf die neueste Datei überprüfen, so lade ich einmal alle Dateien in EIN Verzeichnis hoch und habe so praktisch eine Weiterleitung.
Außerdem kann ich so alle Subdomains auf ein Ziel setzen und der Rest erledigt sich von selbst ! ;)
Im PHP geb ich dann den expliziten Pfad an, sodass man auch direkt weiter im Menü browsen kann.

Aber noch eine andere Frage:
Was genau bedeutet dieses Echo ich bin die startseite, kann es sein, das das mal ein User sieht, falls ich mal vergessen habe, eine if anweisung mehr für eine seite zu erstellen ?
Oder gibt es sowas wie ein Default ?
Dass es also, falls keine von den if`s sich aktiviert, es sowas wie elseif (kenne ich aus VB) gibt ?!
 
Auf deine letzte Frage: Es ist so wie du sagtest. Wenn die Subdomain "www" ist oder es gar keine Subdomain gibt, dann greift die if-Abfrage nicht und er geht direkt in den else-Zweig, wo dann einfach "hallo ich bin die standardseite!" an den Besucher ausgegeben wird. Eleganter wäre an dieser Stelle vermutlich eine Weiterleitung auf eine Standard-Seite (auch per header("Location:..."); ), vielleicht auch die index.php.
 
Aha...tut mir leid, aber ich muss eingestehen, das ich das leicht klugscheißerisch finde:
Du sagst, es geht...Und wie ?
Das andere ist; In allen Foren, die ich fand, wurde das dementiert...bloß, du weißt es ?
Warum sagst du es uns nicht ?

Ach ja, diese Frage bitte nicht vergessen:
dertimmerle schrieb:
Aha...ist das bei dem zweitem nicht so, das da die Default-Eigenschaft greift ?
 
Zuletzt bearbeitet:
Zurück
Oben