Avatar billede Mik2000 Professor
17. december 2011 - 00:41 Der er 10 kommentarer og
1 løsning

Hente filer fra andet domæne

Hej

Jeg har lavet en lille side på et domæne, eksempelvis www.mit-dom.dk. Denne side skal også ligge på f.eks. www.dom-mit.dk

På et andet domæne f.eks. www.teknisk-dom.dk skal jeg have et lille support/helpdesk ting til at ligge med helpdesk.php

Hvordan får jeg smartest vist siderne fra teknisk-dom.dk på de andre sider.

Jeg har tænkt på include/require. Men i så fald får jeg problemer hvis f.eks. www.dom-mit.dk ligger på en anden server, da den så ikke kan få adgang til at hente fra databasen i helpdesk.php filen fordi den så ekssekveres fra en anden server end den ligger på.

Så hvad gør man/hvad bruger man i sådan en problemstilling?
Avatar billede olebole Juniormester
17. december 2011 - 00:54 #1
<ole>

Du kan ikke bruge PHP kode på tværs af domæner. Inkluderer du en fil fra et andet domæne, får du outputtet fra den, men ikke adgang til dens variabler eller funktioner.

Jeg er ikke helt klar over, hvad du vil - og kender ikke din struktur - men måske en iframe kunne være en mulighed(?)

/mvh
</bole>
Avatar billede Mik2000 Professor
17. december 2011 - 01:45 #2
Det er fordi når jeg tester lokalt fra wamp så ser den filen jeg include'r som enhver anden side jeg include'r fra samme projekt, således at stierne i den jeg include'r skal passe til det andet projekt mv.

Da nogle domæne vil ligge på samme server, hvor database ligger lokalt, går jeg ud fra det vil være det samme hvis man ligger det online?
Avatar billede acore Ekspert
17. december 2011 - 11:24 #3
På min host kan man lave alias, så flere forskellige sider deler samme kode-biblioteker, uden at de behøver være helt ens.

Men hvis det handler om at få vist siderne fra en side på en anden side, så er der ud over iframe, som olebole nævner også mulighed for at få outputtet fra en anden side (som ellers ville blive vist der) ind i en variabel, som vi kan vise eller arbejde med i php-koden på den første side. Det kan gøres via cURL biblioteket i php (det avancerede), men hvis du bare skal ha' en siden uden dikkedarer, så virker file_get_contenta (og alle andre f...() funktioner) med internet-adresser som argument vist på de fleste hosts.
Avatar billede Mik2000 Professor
17. december 2011 - 14:08 #4
Hej

Er det noget ligesom dette:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.adresse.dk/fil.php");
curl_setopt($ch, CURLOPT_TIMEOUT, 2); // timeout
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
               
if($output === false){
echo "Kan ikke vises";
} else {
echo $output;
}

Men hvad er forskellen på:
Curl
include
iframe
file_get_contenta
og hvornår/hvorfor bruger man hvad?

Det kan jeg ikke helt forstå når jeg forsøger at læse om det
Avatar billede larste Nybegynder
17. december 2011 - 15:39 #5
Jeg kan godt forstå du bliver forvirret, der er mange forskellige begreber i spil her, men lad os starte:

Include (Indbygget i PHP)
En indbygget funktion i PHP, der lader dig inkludere filer i dine scripts.
Brug include til lokale filer.

cURL (Eksternt program der kan bruges i PHP)
Først og fremmest et software projekt, hvis mål er at gøre det nemt at flytte data rundt på tværs af protokoller(http, ftp, etc.).
I php har du adgang til curl metoderne, der lader dig bruge curl, som ligger på din server.
Brug curl når du har behov for mere avanceret kommunikation mellem servere.

iframe (HTML)
Et html tag, der lader dig vise et andet dokument på din side. (En iframe kunne eksempelvis vise en youtube-video)

file_get_contents (Indbygget i php)
En funktion i php der læser indholdet af en fil og returnerer det som en streng.
Avatar billede Mik2000 Professor
18. december 2011 - 02:01 #6
Et sidste tillægsspørgsmål så

Såfremt man bruger dem, så eksekveres filen altid, og derefter hentes den.

Hvordan gør man så følgende (alle bærer præg af det samme):

1: Jeg har en language fil med defines, og dem vil jeg jo gerne kunne bruge på det andet domæne også, så de ikke skal gå igen dobbelt 2 steder. Er der ingen mulighed for at den der inkluderes kan bruge de language variabler der ligger på siden?

2: Jeg har nogle variabler med oplysninger i, som gerne skulle kunne bruges på den side jeg inkluderer, men de kan ikke sendes i adresselinjen, da der er mange og da de ikke må vises.

3: Hvordan laver man et sikkerhedstjek på de filer man inkluderer, således at man ikke blot kan skrive den direkte adresse til det domæne og de filer, og på den måde komme direkte ind på dem
Avatar billede olebole Juniormester
18. december 2011 - 16:14 #7
Løsningen er en anden struktur! Du er inde på et spor, som i hovedtrækkene består af problemer. Spørgsmålet er så, om du vil spilde din ungdom på at 'hacke' dig uden om selvskabte problemer - eller om du vil se virkeligheden i øjnene og bruge teknologien sådan, som den er skabt til at blive brugt  =)
Avatar billede Mik2000 Professor
18. december 2011 - 18:06 #8
Men hvordan skulle det så være.

Jeg har noget helpdesk som jeg skal administrerer et sted fra, og her har jeg også noget forside mv. jeg skal ændre et sted fra.

Disse ting skal kunne vises og bruges på x antal domæner hvor nogle ligger på samme server og andre på en anden server.

Samtidige kan der ske opdateringer mv. i funktioner på helpdesk, så der skal det jo også være sådan at det kun skal rettes et sted.

Hvordan vil man så gøre det?
Avatar billede olebole Juniormester
18. december 2011 - 18:19 #9
Du kan, som nævnt ovenfor, 'hacke' dig ud af problemerne med curl, men dybest set er det grundkonceptet, der er uhensigtsmæssigt. At rode distribueret og hosted administration sammen kan næppe gøres hensigtsmæssigt  =)
Avatar billede Mik2000 Professor
19. december 2011 - 01:42 #10
Men hvad ville man så gøre i de tilfælde, for det vil vel heller ikke være hensigtmæssigt at ligge helpdesk funktionen ud på alle domæner, og det er det eneste alternativ jeg kan se
Avatar billede Mik2000 Professor
08. februar 2012 - 00:08 #11
Lukker
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