

Ale do zeczy, mianowicie teraz mam podobny problem, jak to zrobic ale bezpiecznie i tak aby nie zajmowało 3 cyfrowej liczby linijek kody

Najproście ro chyba tak:
<?php $id = $_GET['id']; if($id == 1) { include 'plik1.php'; } if($id == 2) { include 'plik2.php'; } if($id == 3) { include 'plik1.php'; } ?>
Ale w takim układzie spooro lini kodu przybędzie a co za tym idzie szybkość spadnie i przy sporej liczbie odwiedzających może być już kiepsko - przykładem jest np. seriws elektroda.pl który w godzinach szcytu potrafi miec czas wykonani skryptu ponad 30 sekund !
Drugim mankamentem tego kodu jest że tutaj trudno sprawdzić czy taki id istnieje, nie chce dopuścić do sytłacji gdzie użytkownik z powodu braku pliku dostaje całą stronę błędów ....
Pomyślałem że można też tak:
<?php $id = $_GET['id']; $plik = ./$id; { include $plik.'.php'; } else { echo 'Dokument o podanym ID nie istanieje ! Jeśli zaprowadził Cie tutaj któryś z linków na stronie skontaktuj się z administratorem.'; } ?>
Tylko teraz czy ten sposób jest naprawde bezpieczny ? No niby jest ./ ale jakoś ja mam talent do pisania skryptów które łątwo wykrzaczyć

p.s. Powyższych kodów nie sprawdzałem ale powinny działać.
*/*/*/*EDIT*\*\*\*
Drugi kod był błedny


Aż starch pomyśleć => index.php?id=../../pwd

Ale dobra mnijsza o to, poprawiłem go i wygląda tak:
<? $id = $_GET['id']; $plik = './doc_'.$id.'.php'; { include $plik; } else { echo 'Dokument o podanym ID nie istanieje ! Jeśli zaprowadził Cie tutaj któryś z linków na stronie skontaktuj się z administratorem.'; } ?>
Więc teraz nie da się jako id podać index bo nie ma czegos takeigo jak doc_index.php, pilnowac tylko trzeba żeby żaden dokument php nie miał nazwy zaczynającej się na doc_.
Czy teraz skrypt jest bezpieczy ?