<?php
// zmienna $id przekazana metoda GET
$id = $_GET['id'];
// sprawdzamy czy zmienna $id nie jest pusta
if(!empty($id)) {
// sprawdzamy czy plik o danej nazwie (php) oraz dopuszczalnych znakach (litera/cyfra oraz -/_) istnieje
if( (file_exists("$id.php")) && (preg_match('|^[[:alpha:]-/_]+$|', $id)) ) include "$id.php";
// jezeli plik nie istnieje wyswietla się komunikat
else include '404.php';
}
// jezeli zmienna $id jest pusta wyswietla się strona glowna
else include '1.php';
?>
<?php
// zmienna $id przekazana metoda GET
$id = $_GET['id'];
// sprawdzamy czy zmienna $id nie jest pusta
if(!empty($id)) {
// sprawdzamy czy plik o danej nazwie (php) oraz dopuszczalnych znakach (litera/cyfra oraz -) istnieje
if( (file_exists("$id.php")) && (preg_match('|^[[:alnum:]-/_]*$|', $id)) ) include "$id.php";
// jezeli plik nie istnieje wyswietla się komunikat
else include '404.php';
}
// jezeli zmienna $id jest pusta wyswietla się strona glowna
else include 'start.php';
?>
_Puma_ , podałeś i testujesz dwa zupełnie różne wyrażenia, pomiędzy [:alnum:], a [:alpha:] jest ogromna różnica, również dopasowywanie z * nie jest moim zdaniem w tym wypadku bezpieczne, gdyż dopasowuje też 0 ‘trafień’ co w tym wypadku mija się z celem