- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
if ( !empty( $page ) )
{
if ( $page == "login" )
{
$spage = "Login.inc";
}
else if ( $page == "rules" )
{
$spage = "rules.inc";
}
else if ( $page == "help" )
{
$spage = "help.inc";
}
else if ( $page == "wm" )
{
$spage = "wm.inc";
}
else if ( $page == "game"
{
$spage = "game.inc";
}
else if ( $page == "webmoney" )
{
$spage = "webmoney.inc";
}
else if ( $page == "egold" )
{
$spage = "egold.inc";
}
else if ( $page == "cashin" )
{
$spage = "cashin.inc";
}
else if ( $page == "ballans" )
{
$spage = "ballans.inc";
}
else if ( $page == "remind" )
{
$spage = "remind.inc";
}
else if ( $page == "contact" )
{
$spage = "contact.inc";
}
else if ( $page == "reg" )
{
$spage = "reg.inc";
}
chem
$page = $_GET['page'].'.inc';
И то если соответствие полное, а то вон самый первый файл называется с большой буквы.
Вариант раз: более быстрый, менее гибкий (для добавления нового модуля надо править код).
Вариант два: более гибкий (чтобы добавить новый модуль, нужно просто залить новый файл), менее быстрый (за счёт дополнительной дисковой операции по определению существования файла). Обращаю внимание на вызов ctype_alnum() - так мы проверяем, что имя содержит только буквы и цифры, чтобы нам не могли подставить туда слэшей и точек и стянуть файл из другой директории.
З.Ы. Ниже правильно сказали, что должно быть
> соответствие полное, а то вон самый первый файл называется с большой буквы.
Я об этом помню, просто показал, как должен бы выглядеть код в посте, на который я отвечаю.
selffix
Даже если ты хотел написать file_exists - все равно твой код еще больший говнокод, чем у автора, ибо addslashes не экранирует точки