Vypis souboru

Napsal jsem si php soubor díky němuž budu moci vypisovat php soubor z urcite slozky, jenze soubor funguje ale vypisuje mi chybu:

Warning: include(.php) [function.include]: failed to open stream: No such file or directory in .../print.php on line 4

Warning: include() [function.include]: Failed opening '.php' for inclusion (include_path='.../php/:.') in .../print.php on line 4

Zajimalo by mě:

1, dá se nějak tato chyba odstranit?
2, není napadnutelná přes php injection?

print.php:
<?php
$link = $_GET["file"];

if ($link == "$file") {include "$file.php";}
?>

Děkuji
<HTML>Tytyty, nenene!

1) Proměnná $file je asi prázdná (navíc jaká je tady pointa v porovnávání $file a $_GET['file']? s register_globals bude podmínka vždy splněna, bez něj nebude splněna téměř nikdy). Pro kontrolu, zda byla proměnná předána GETem, se hodí isset. A nelíbí se mi "$file". Je to prasárna, $file je mnohem jednodušší vyjádření téhož.

2) Ano je. Může se stát několik věcí:

a) Útočník dá komplikovanější název s lomítky a nakrokuje si do nějakého adresáře atd.

b) Útočník může tvůj skript snadno zacyklit.

c) Útočník může dosadit vzdálený soubor, typicky nějakého správce souborů, a hrabat se ti v souborech na tvém serveru. Tohle je naštěstí ošetřené tím, že je standardně vypnuté allow_url_fopen, ale pokud si to zapneš, tak tě nic nezachrání.

d) Je-li soubor nějakým způsobem zapisovatelný návštěvníkem (typicky naprosto špatně napsaná návštěvní kniha), může snadno dojít k c) tím, že si do toho souboru útočník zapíše příslušný škodlivý skript.

a/b/c řeší úprava kódu na switch, kdy pevně stanovíš povolené možnosti
d řeší ošetření vstupu, file_get_contents... atd (samozřejmě, pokud básník opravdu nezamýšlel ten soubor zpracovat PHPkem)</HTML>
Děkuji... a jde to nějak vyřešit nebo mám začít vymýšlet neco jiného?
<HTML>No, když si nestanovíš, čeho vlastně chceš docílit, tak nelze rozumně poradit.</HTML>
Chtěl bych vypisovat soubory ze složky php do indexu zadáním adresy např. index.php?file=soubor . Na internetu jsem našel návody, ale nebyli dynamické, takže jsem musel předem určit jaké budu chtít vypsat soubory.
http://polopate.jakpsatweb.cz/index.php?page=include
http://polopate.jakpsatweb.cz/index.php?page=include2
http://polopate.jakpsatweb.cz/index.php?page=include3
Snad se v tom nejak vyznam :) dekuji