Gå til innhold

include ekstern side


Anbefalte innlegg

har prøvd en del og søkt en del men ikke funnet ut hvordan jeg kan bruke include til å hente en ekstern side, feks google. Regner med at noe av dere glupinger kan hjelpe meg litt, er ny på php. så lurer jeg på om det finnes noen sider på nettet som man kan lære seg litt grunnleggende. (egelsken min er veldig dårlig).

 

MVH

 

lilfire

Lenke til kommentar
Videoannonse
Annonse
fikk ikke det helt til... er ny på detta så må det inn litt nøye...

får denne erroren på den koden

 

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /home/lilfire/public_html/forum.php on line 9

 

Warning: file_get_contents(http://www.diskusjon.no) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /home/lilfire/public_html/forum.php on line 9

Lenke til kommentar
har prøvd en del og søkt en del men ikke funnet ut hvordan jeg kan bruke include til å hente en ekstern side, feks google. Regner med at noe av dere glupinger kan hjelpe meg litt, er ny på php. så lurer jeg på om det finnes noen sider på nettet som man kan lære seg litt grunnleggende. (egelsken min er veldig dårlig).

 

MVH

 

lilfire

Hvis du har tenkt å bruke "include" til dette kan du jo lese her: http://no.php.net/include/, men det er på engelsk.

 

Hvis jeg ikke husker feil må du sette en variabel i php.ini for å få lov til å bruke include fra andre domener enn der du kjører scriptet ditt, fordi det kan utgjøre en forholdsvis stor sikkerhetsrisiko å kjøre kode som ligger på andre servere. "allow_url_include" heter vel den variabelen. Det å bare hente inn en tekst fra en annen side, som du ikke skal kjøre, trenger du vel ikke bruke include for. Og det virker egentlig på meg som du ikke trenger å bruke include, men du må nesten beskrive hva du ønsker å gjøre litt mer nøyaktig hvis jeg skal kunne svare bedre.

 

Edit:

 

fikk ikke det helt til... er ny på detta så må det inn litt nøye...

får denne erroren på den koden

 

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /home/lilfire/public_html/forum.php on line 9

 

Warning: file_get_contents(http://www.diskusjon.no) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /home/lilfire/public_html/forum.php on line 9

 

Tror det er allow_url_fopen du må sette til "on" i php.ini fila di.

 

Enda en edit:

 

Hvis du bare ønsker å slå på "allow_url_fopen" i denne fila og ikke gjøre noe med php.ini kan du sette inn: ini_set('allow_url_fopen', 1); øverst i scriptet.

Endret av magicgunnar
Lenke til kommentar

som sagt så er jeg helt fersk på detta. men det jeg ønsker er at siden er delt inn i 2, toppen er menyen(eller selve siden da) og selve innholdet er en ekstern side. så for meg virka det mest naturlig å bruke include til å hente den eksterne siden. finens det noe bedre innen php'en så bruker jeg gjerne det..

 

btw det hjalp ikke å sett ini_set('allow_url_fopen', 1);. kunnejo sett i selve php.ini fila men har ikke peiling på hvor den ligger på servern da...

Lenke til kommentar
btw det hjalp ikke å sett ini_set('allow_url_fopen', 1);. kunnejo sett i selve php.ini fila men har ikke peiling på hvor den ligger på servern da...

 

Kommer helt an på serveren din. Kjører du Linux ligger den i /etc/php5/apache2/

Kjører du windows ligger den der du har installert PHP.

Lenke til kommentar

Du kan vell bruke en iframe og sette innholdet ved hjelp av javascript.

 

<iframe name='rightFrame' id='rightFrame'></iframe>

 

Sett innholdet slik:

 

<script language='javascript' type='text/javascript'>
function setContent(){
document.getElementById('rightFrame').src = 'http://www.webside.no';
}
</script>

Lenke til kommentar

Å hente ut en side fra en http-server uten allow_url_fopen er ikke videre trivielt, så snille meg har skrevet litt kode som bruker socket som bør fungere uavhengig av hva php.ini er satt til. Viktig å merke seg at $file-parameteren må være fra rota og fremover. Den kan være inkludert query-string aka f.eks fil.php?a=b

<?php

function getPage($host, $file, $port=80)
{
$socket = fsockopen($host, $port);
if ($socket === false)
	return false;
else
{
	$request = "GET /$file HTTP/1.0\r\n";
	$request.= "Host: $host\r\n";
	$request.= "Content-Type: text/html\r\n";
	$request.= "Connection: Close\r\n\r\n";

	fwrite($socket, $request);
	$data = '';
	$found = false;
	while (feof($socket) === true)   
	{
		if ($found === false)
		{
			//Looking for first empty line. Everything after that is data
			// according to the HTTP protocol
			$line = fgets($socket);
			if (strcmp("\r\n", $line) === 0)
				$found = true;
		}
		else
			$data .= fgets($socket);
	}
	fclose($socket);
	return $data;
}
}

echo getPage('www.diskusjon.no', 'index.php');
?>

 

btw det hjalp ikke å sett ini_set('allow_url_fopen', 1);. kunnejo sett i selve php.ini fila men har ikke peiling på hvor den ligger på servern da...

 

Kommer helt an på serveren din. Kjører du Linux ligger den i /etc/php5/apache2/

Kjører du windows ligger den der du har installert PHP.

Normalt er det vel /etc/php.ini ;)

 

Red.: Fikset litt på indenteringen i koden.

Red.2: Byttet om på parameterene og la til default 80 på $port.

Red.3: Liten clean-up i kodestilen.

Red.4: fclose er kanskje ikke så dumt? :)

Endret av Ernie
Lenke til kommentar
Normalt er det vel /etc/php.ini ;)

 

Nå ja. Er vel mere

/etc/php5/apache2/php.ini

/etc/php5/apache2/php.ini er etter min mening en høyst uvanlig plassering av php.ini i linux og unix-systemer. /etc/php.ini er nok en mer vanlig plassering, om ikke den mest vanlig plasseringen av php.ini.

Lenke til kommentar
Normalt er det vel /etc/php.ini ;)

 

Nå ja. Er vel mere

/etc/php5/apache2/php.ini

/etc/php5/apache2/php.ini er etter min mening en høyst uvanlig plassering av php.ini i linux og unix-systemer. /etc/php.ini er nok en mer vanlig plassering, om ikke den mest vanlig plasseringen av php.ini.

 

Hvorfor blir den lagt dit når man installerer med apt-get install php5 da?

Lenke til kommentar
Normalt er det vel /etc/php.ini ;)

 

Nå ja. Er vel mere

/etc/php5/apache2/php.ini

/etc/php5/apache2/php.ini er etter min mening en høyst uvanlig plassering av php.ini i linux og unix-systemer. /etc/php.ini er nok en mer vanlig plassering, om ikke den mest vanlig plasseringen av php.ini.

 

Hvorfor blir den lagt dit når man installerer med apt-get install php5 da?

Fordi det er der folka bak Ubuntu vil ha php.ini.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...