[PHP]inhoud van een pagina aan een variabele toevoegen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • WOrange
  • Registratie: September 2001
  • Laatst online: 02-09 15:32
Ik wil graag de inhoud van een pagina aan een variabele toevoegen.
Bijv.:

$inhoud = "url/pagina.htm";
echo "$inhoud";

Volgens mij is dit wel mogelijk, alleen weet iemand hoe?

Oriëntatie warmtepomp woning 1980


Acties:
  • 0 Henk 'm!

  • WPN
  • Registratie: Augustus 2003
  • Laatst online: 24-07 21:14

WPN

zal iets worden als

PHP:
1
2
3
$inhoud = "map/pagina.htm";

include($inhoud);

Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
iets als:
PHP:
1
2
3
<?PHP
$var=implode('', file($url));
?>

[ Voor 11% gewijzigd door djluc op 31-12-2003 14:22 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Denk dat je inderdaad een include() bedoelt.

Acties:
  • 0 Henk 'm!

  • WOrange
  • Registratie: September 2001
  • Laatst online: 02-09 15:32
Peluso schreef op 31 december 2003 @ 14:19:
zal iets worden als

PHP:
1
2
3
$inhoud = "map/pagina.htm";

include($inhoud);
Ok, zo is het gelukt!
Dankjewel!
Weer wat geleerd.

Oriëntatie warmtepomp woning 1980


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Dan heb je het niet geheel goed uitgelegd want met include wordt het meteen naar de browser gestuurd, terwijl je met mijn methode de inhoud van de file echt in een variable hebt. Dat is vaak handig om bijvoorbeeld UBB tags te parsen e.d.

Acties:
  • 0 Henk 'm!

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

djluc schreef op 31 december 2003 @ 14:29:
Dan heb je het niet geheel goed uitgelegd want met include wordt het meteen naar de browser gestuurd, terwijl je met mijn methode de inhoud van de file echt in een variable hebt. Dat is vaak handig om bijvoorbeeld UBB tags te parsen e.d.
Daarnaast is jou methode ook veiliger. :)

Sundown Circus


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Wat is er veiliger aan? Er zit toch niet zo heel veel verschil in...

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

djluc schreef op 31 december 2003 @ 15:28:
Wat is er veiliger aan? Er zit toch niet zo heel veel verschil in...
omdat als je include gebruikt wordt eventuele php code eerst uitgevoerd ;)

Acties:
  • 0 Henk 'm!

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

• Je implode de variabele, wat _iets_ veiliger is.
• Nog beter zou zijn:
PHP:
1
2
3
4
5
define("INHOUD","map/pagina.htm");

include(INHOUD);
//of:
$var=implode('', file(INHOUD));
Zodat derden niet (minder) met je variabelen kunnen kloten en 'malicious' code kunen draaien.

edit:
Erkens :P

[ Voor 14% gewijzigd door RedRose op 31-12-2003 15:37 ]

Sundown Circus


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

RedRose schreef op 31 december 2003 @ 15:36:
[/php]Zodat derden niet (minder) met je variabelen kunnen kloten en 'malicious' code kunen draaien.
hoe willen derden met variabelen kunnen kloten?

PHP:
1
2
3
4
<?
$var = "blaat";
echo $var;
?>


hoe wil je hiervan de output anders laten zijn dan "blaat", ben ik best benieuwd naar ;)

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
RedRose: implode is alleen gebruikt omdat file een array teruggeeft en we hier een string willen hebben. Je kunt op deze manier verschillende dingen bereiken: je kunt de output van de file krijgen, door bijvoorbeeld: file('http://localhost/index.php'); te gebruiken. Of de source: file('./index.php');

Je zult dus zeker een goede beveiliging moeten maken zodat er niemand met je source vandoor gaat.

Acties:
  • 0 Henk 'm!

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Erkens schreef op 31 december 2003 @ 15:39:
hoe wil je hiervan de output anders laten zijn dan "blaat", ben ik best benieuwd naar ;)
In jouw voorbeeld niet nee. ;) Maar het _zou_ wel kunnen, bijvoorbeeld als je je request-vars niet goed checked. Daarnaast vind ik het voordeel van het gebruik van constants dat ze niet meer overschreven kunnen worden er per definitie dus geen andere waarde kunnen krijgen. ;)

edit:
djluc: klopt, maar implode neemt alleen een array aan, die je split op een token. Dat lijkt me sowieso al iets veiliger.

[ Voor 14% gewijzigd door RedRose op 31-12-2003 15:44 ]

Sundown Circus

Pagina: 1