Avatar billede Mik2000 Professor
07. december 2011 - 01:10 Der er 7 kommentarer og
1 løsning

Include side fra andet domæne

Jeg har lavet 2 domæner

På det ene ligger en helpdesk der skal bruges på flere domæne

På det andet ligger et test system

På det andet skal man så hente en side ind fra det første domæne således at helpdesk siden vises inde i designet.

I den forbindelse har jeg nogle spørgsmål:

1:
Man kan hente ved at benytte
include("url")

eller

$ch = curl_init();                            curl_setopt($ch, CURLOPT_URL, "url");                            curl_setopt($ch, CURLOPT_TIMEOUT, 2);                            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);                            $output = curl_exec($ch);                            curl_close($ch);
if($output === false){                                echo "Fejl.";
} else {                                  echo $output;
}   

Hvad vil du bruge og hvorfor?

2:
Jeg arbejder lokalt på siden og ligger den op når jeg er færdig med nogle dele.
Den bedste måde at genrerer url der bruges i eksempel ovenover så den både virker lokalt og på domæne, er det ved at lave en variabel: $er_offline = 1 og så lave if/else og sige den skal hente lokale sti hvis 1 og ellers hente domæne sti?
Eller er der en smartere måde?

3:
I forhold til spørgsmål 2, så er det jo også sådan at fra den side man henter ind, virker det ikke fordi den også har includes, og de passer jo ikke i forhold til den side den inkluderes på. Er der en smart måde at komme uden om det, eller skal man også her lave noget variabel og noget if/else?
Avatar billede olebole Juniormester
07. december 2011 - 17:05 #1
<ole>

Hvis du på domæne A inkludere en PHP-fil fra domæne B, vil dens funktioner og variabler ikke kunne bruges på domæne A. Alle filens funktioner og variabler skal/kan bruges på domæne B - og domæne A kan så inkludere resultatet.

Skriver filen på domæne B noget ud, er dette altså alt, hvad domæne A kan se/bruge.

Med andre ord svarer en X-domain-include mere eller mindre til at inkludere en statisk fil

/mvh
</bole>
Avatar billede Mik2000 Professor
07. december 2011 - 18:42 #2
Hej

Det forstår jeg godt, og de variabler mv. jeg bruger i filen - der er nogle også deklæret på domæne a.
Men hvis jeg i filen på domæne b skal hente noget fra en database på domæne b, så er jeg jo nødt til at hente en fil ind mv.

Da PHP køres på serveren og returnerer HTML kan den jo sagens det i og med det eksekveres med det samme, men problemet er man skal ændre stier alt efter om man kun tester på domænet b eller gennem a, og om der testes lokalt eller online
Avatar billede olebole Juniormester
07. december 2011 - 18:57 #3
Alle den slags domænespecifikke ting lægges normalt som variabler (eller definerede konstanter) i en konfigurationsfil - f.eks: /inc/config.php. Filen inkluderer du så i toppen af alle dokumenter med:

include($_SERVER['DOCUMENT_ROOT'].'/inc/config.php');
Avatar billede Mik2000 Professor
07. december 2011 - 23:51 #4
Nååh ja kan bruger $_SERVER :)
Det var egentlig svar på 3'eren

Hvad med 1'eren - har du nogen erfaring med det, og kan man få den til at skrive en fejlmeddelelse efter eget ønske hvis den ikke kan hente en include
Avatar billede olebole Juniormester
08. december 2011 - 00:11 #5
Prøv:


$foo = @include('side.php');
if (!$foo) echo 'Some shit hit the fan!';

Avatar billede Mik2000 Professor
11. december 2011 - 15:11 #6
Point hvis der ligges svar
Avatar billede olebole Juniormester
11. december 2011 - 18:56 #7
Ellers tak, jeg samler ikke point. Læg selv et svar og accepter det, så tråden lukkes  =)
Avatar billede Mik2000 Professor
17. december 2011 - 01:47 #8
Okay tak :)
Lukkes
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