Avatar billede whyme Nybegynder
23. marts 2004 - 12:26 Der er 17 kommentarer og
1 løsning

Hive subdomain ud af url?

Hej,

Hvordan er det muligt via PHP at få fat i "subdomænet"

Eks.:

http://sub.domain.dk
http://www.sub.domain.dk
http://sub.domain.dk/mappe/link.php?id=32
http://www.sub.domain.dk/mappe/link.php?id=32

Hvis man skriver de adresser, skal det være muligt via PHP at få ordet: " sub "
ud fra de links...

Sådan at jeg via PHP kan vide hvilket subdomain en person efterspørger og ændre indholdet efter dette.

På forhånd tak.
Avatar billede skg Nybegynder
23. marts 2004 - 12:32 #1
$domain = $_SERVER['HTTP_HOST'];
$domainParts = split( $domain, "." );

$subDomain = NULL;

if( count( $domainParts ) > 2 )
  $subDomain = $domainParts[ count( $domainParts ) - 2 ];


så burde du have dit subDomain eller NULL hvis det ikke blev fundet.
Avatar billede skg Nybegynder
23. marts 2004 - 12:34 #2
de to argumenter til split skal byttes om...
Avatar billede whyme Nybegynder
23. marts 2004 - 13:26 #3
Den ser ikke ud til at virke.
Nu har jeg:

<?php
$domain = $_SERVER['HTTP_HOST'];
$domainParts = split(".",$domain);

$subDomain = NULL;

if (count($domainParts) > 2) {
  $subDomain = $domainParts[ count( $domainParts ) - 2 ];
}

echo $subDomain;
?>
Avatar billede skg Nybegynder
23. marts 2004 - 13:46 #4
hvad går der galt ? får du nogle fejl ?


En anden ting : et subdomain plejer at være noget man sætter op på serveren/DNS'en/whatever, så der rent "fysisk" peges på et andet website.
Avatar billede whyme Nybegynder
23. marts 2004 - 14:52 #5
Det er som sådan ikke et subdomain system jeg er ude efter eller noget, men jeg skal bruge det som du har gang i...

HTTP_HOST, hvor man tager subdomain navnet.

Men den virker bare ikke den kode - jeg får bare "intet"... en blank hvid side
Avatar billede skg Nybegynder
23. marts 2004 - 14:56 #6
hvis du prøver det på http://localhost/test.php så er det jo ikke et "rigtigt" domain, og derfor får du ikke noget ud.

Det skal ud et sted hvor du har det hele : ****.ditdomain.dk
Avatar billede whyme Nybegynder
23. marts 2004 - 14:58 #7
Ja, jeg har et ægte fysisk domæne såsom: subdomain.domain.dk

Ved at skrive:
echo $_SERVER['HTTP_HOST'];

udskriver den eksempelvis:
subdomain.domain.dk

Så det er selve den kode du har lavet bagefter, som jeg tror der måske er en lille fejl i, så den ikke får fat i subdomain ordenligt...(?)
Avatar billede skg Nybegynder
23. marts 2004 - 15:04 #8
jeg splitter det op på . som jo adskiller de forskellige dele

hvis der er mere end 2 dele så skal den tage den 3. sidste. Prøv evt. at skrive $domainParts ud og så de hvilken del du skal bruge. Det er ret simpel kode.
Avatar billede whyme Nybegynder
23. marts 2004 - 15:07 #9
echo $domainParts;

giver:

Array
Avatar billede skg Nybegynder
23. marts 2004 - 15:14 #10
brug print_r eller vardump
Avatar billede whyme Nybegynder
23. marts 2004 - 15:17 #11
print_r($domainParts);

Giver:
Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => [11] => [12] => [13] => [14] => [15] => [16] => [17] => )
Avatar billede skg Nybegynder
23. marts 2004 - 15:42 #12
<?php
$domain = $_SERVER['HTTP_HOST'];
//var_dump($_SERVER['HTTP_HOST']);
$domainParts = explode(".",$domain);
//print_r($domainParts);
$subDomain = NULL;

if (count($domainParts) > 2) {
  $subDomain = $domainParts[ count( $domainParts ) - 2 ];
}

echo $subDomain;
?>
Avatar billede whyme Nybegynder
23. marts 2004 - 15:59 #13
Den ser ud til at virke, bortset fra den udskriver:
domain

i stedet for:
subdomain

Så nu sker der da i det mindste noget ;)
jeg ved bare ikke hvad fejlen er...
Avatar billede skg Nybegynder
23. marts 2004 - 16:02 #14
prøv dig nu selv lidt frem - du lærer jo intet ved at jeg skal lave det hele.

prøv at fjerne de to kommentarer "//". Det burde hjælpe dig, så du kan se hvad du arbejder med
Avatar billede whyme Nybegynder
23. marts 2004 - 16:12 #15
Ja okay, sorry.

Har bare aldrig prøvet dette før; beklager ;)
- men man lærer da, og jeg vil også læse funktionerne lidt igennem du har brugt.

Dette ser ud til at virke som det skal, både med og uden "www" foran.

Dette udskriver "subdomain" i subdomain.domain.dk:

<?php
$domain = $_SERVER['HTTP_HOST'];

//var_dump($_SERVER['HTTP_HOST']);

$domainParts = explode(".",$domain);

// print_r($domainParts);

$subDomain = NULL;

if (count($domainParts) > 2) {
  $subDomain = $domainParts[ count( $domainParts ) - 3 ];
}

echo $subDomain;
?>
Avatar billede skg Nybegynder
23. marts 2004 - 16:17 #16
så er din lykke gjort :-)

Og selvfølgelig var det som altid bare et lille tal der skulle ændres, fordi man har siddet og talt forkert inde i hovedet - min fejl.
Avatar billede whyme Nybegynder
23. marts 2004 - 16:22 #17
Mange tak for din hjælp ;)
Avatar billede skg Nybegynder
23. marts 2004 - 16:23 #18
selv tak :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester