Avatar billede sw_red_6 Nybegynder
04. oktober 2006 - 11:28 Der er 22 kommentarer og
1 løsning

hent fuld url

Er det muligt på http://www.enside.dk/enfil.php at få fat i "http://www.enside.dk"-delen?
Det SKAL ikke være PHP, men det er det primære sprog jeg bruger så det ville være det bedste
Avatar billede hmm10 Nybegynder
04. oktober 2006 - 12:02 #1
Således?

function UrlClean($url)
{
    $url_split = split('/', $url);
    return $url_split[0].'//'.$url_split[2];   
}

print UrlClean('http://www.enside.dk/enfil.php')."<br />\n";
Avatar billede sw_red_6 Nybegynder
04. oktober 2006 - 12:09 #2
det kunne jeg sagtens selv have lavet... sikkert mig der endnu en gang er en klovn til at forklare hvad det egentlig er jeg vil have.. så jeg prøver lige med lidt mere forklaring:
problemet er at $url fra din funktion ikke skal hardcodes i filen, men hentes fra adressen.
jeg har kigget på $_SERVER og der er næsten det jag skal bruge, men jeg kan ikke få http:// med hvis ikke jeg bruger $_SERVER['HTTP_REFERER'].
Jeg kan selvf. bare bruge $_SERVER['HTTPS'] sammen med $_SERVER['HTTP_HOST'] for at tjekke om det skal være http eller https men hvis jeg kunne hive det ud direkte ville det være at foretrække
Avatar billede hmm10 Nybegynder
04. oktober 2006 - 12:33 #3
Mit bud ville være at du skal tjekke, om det er en http eller en https. Jeg kan kun få oplysningerne ud, hvis jeg bruger $_SERVER['HTTPS'] -- og ikke i en "samlet function". Meen måske er der én herinde, der sidder med en løsning? (Så lærer jeg også noget i dag, hvis jeg tager fejl)

Jeg har ikke mulighed for at teste scriptet herunder, da jeg ikke sidder med en https -- Kan godt være at "'on'" blot kan være "on" (uden ').

if($_SERVER['HTTPS'] == 'on') print 'USING HTTPS!'."<br />\n";
else print 'NOT USING HTTPS!'."<br />\n";
Avatar billede sw_red_6 Nybegynder
04. oktober 2006 - 12:36 #4
øh on er en streng den skal teste mod så der skal vel '/" om
Avatar billede sw_red_6 Nybegynder
04. oktober 2006 - 12:38 #5
hm ved nærmere undersøgelse så er det vidst ikke nødvendigt alligevel
Avatar billede hmm10 Nybegynder
04. oktober 2006 - 12:40 #6
Jeg researchede lige nettet igennem for evt. at finde en alternativ løsning. Fandt en side, som beskrev en løsning med uden '. Jeg undrede mig også omkring dette, for normalt laver med jo ' -- men eftersom jeg ikke kan teste, kan jeg ikke konkludere noget som helst :(

Men det kan du så? :)
Avatar billede sjh Nybegynder
04. oktober 2006 - 12:46 #7
kan den ikke bruges så...

<?php
  $Host = $_SERVER["HTTP_HOST"];
  $Port = $_SERVER["SERVER_PORT"];
  $Protocol = (($Port==21)?'ftp':(($Port==80)?'http':(($Port==443)?'https':'')));
  echo $Protocol.'://'.$Host.'/';
?>
Avatar billede hmm10 Nybegynder
04. oktober 2006 - 12:57 #8
sjh > Smart alternativ løsning. Du har lært mig noget i dag -- tak ;)
Avatar billede sjh Nybegynder
04. oktober 2006 - 12:58 #9
ha ha ;)
Avatar billede sjh Nybegynder
04. oktober 2006 - 13:20 #10
Ja det var måske nemmer at gøre det med et array()

<?php
  $Host = $_SERVER["HTTP_HOST"];
  $Port = $_SERVER["SERVER_PORT"];
  $Protocol = array(21=>'ftp',80=>'http',443=>'https');
  echo $Protocol[$Port].'://'.$Host.'/';
?>
Avatar billede hmm10 Nybegynder
04. oktober 2006 - 13:26 #11
-- Og vairablerne ikke skal bruges senere alligevel:

<?
  $Protocol = array(21=>'ftp',80=>'http',443=>'https');
  echo $Protocol[$_SERVER["SERVER_PORT"]].'://'.$_SERVER["HTTP_HOST"].'/';
?>
Avatar billede sjh Nybegynder
04. oktober 2006 - 13:29 #12
eller måske bare sådan.. hvis det ikke er port 443 (HTTPS) så vil det være blive HTTP som standard.. tjekker ikke om det er port 80

<?php
  echo ($_SERVER["SERVER_PORT"]==443)?'https':'http'.'://'.$_SERVER["HTTP_HOST"].'/';
?>
Avatar billede sjh Nybegynder
04. oktober 2006 - 13:35 #13
...så vil det være/blive HTTP som standard...
Avatar billede sw_red_6 Nybegynder
05. oktober 2006 - 12:56 #14
bortset fra at den sidste du lavede kun skriver https ud hvis det er port 443 så er det sikkert meget godt
Avatar billede sjh Nybegynder
05. oktober 2006 - 13:07 #15
Ja nu ved jeg jo ikke helt hvad du skal bruge det til.. men hvis den kun skal bruges til HTTP og HTTPS så er den god nok.

Kan heller ikke lige se hvad man skulle bruge FTP til.. den vil jo ikke køre noget php hvis det er FTP..
Avatar billede sw_red_6 Nybegynder
05. oktober 2006 - 13:09 #16
det var nu også mere at den ikke skrev det her efter https ://'.$_SERVER["HTTP_HOST"].'/';
i hvert fald da jeg lagde den over i en variabel og udskrev variablen...
Avatar billede sjh Nybegynder
05. oktober 2006 - 13:19 #17
øh hvad mener du?? virker det ikke eller hvad??
Avatar billede sw_red_6 Nybegynder
05. oktober 2006 - 13:22 #18
jeg ændrede lidt i det så det virker, men hvis jeg tog det direkte skrev den https i stedet for https://www.synsdata.dk
Avatar billede sjh Nybegynder
05. oktober 2006 - 13:31 #19
Kan ikke lige se hvad dit problem er lige nu.. det her virker fint hos mig:

<?php
  echo ($_SERVER["SERVER_PORT"]==443)?'https':'http'.'://'.$_SERVER["HTTP_HOST"].'/';
?>

den viser: https://www.domæne.dk/ hvis port er 443 ellers viser den: http://www.domæne.dk/

var det ikke det den skulle??
Avatar billede sw_red_6 Nybegynder
05. oktober 2006 - 13:37 #20
det er lige det den skal, men det er ikke helt hvad der sker.
jeg har lige C/P fra 05/10-2006 13:31:59 og den udskriver kun https dvs. at HTTP_HOST-delen mangler!
Avatar billede sjh Nybegynder
05. oktober 2006 - 13:46 #21
ah.. nu har jeg ikke selv adgang til https.. så jeg kan teste det men prøv med :

  echo ($_SERVER["SERVER_PORT"]==443)?'https':'http'.'://'.$_SERVER["SERVER_NAME"].'/';


HTTP_HOST virker sikkert kun hvis det er HTTP og ikke HTTPS
Avatar billede sw_red_6 Nybegynder
05. oktober 2006 - 13:49 #22
som jeg ser det ligger problemet i det her:
($_SERVER["SERVER_PORT"]==443)?'https':'http'
ikke det her:
'://'.$_SERVER["SERVER_NAME"].'/';

eftersom jeg bare ændrede så det nu ser således ud:
$url = ($_SERVER["SERVER_PORT"]==443)?'https':'http';
$url .= '://'.$_SERVER["HTTP_HOST"].'/';
er det den konklusion jeg er kommet frem til.
Avatar billede sjh Nybegynder
05. oktober 2006 - 14:00 #23
ved ikke om det giver noget men måske skal der parentes omkring.. prøv sådan så:

<?php
  $strURL = (($_SERVER["SERVER_PORT"]==443)?'https':'http').'://'.$_SERVER["SERVER_NAME"].'/';
  echo $strURL;
?>
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