- 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";
}
azzz 25.12.2009 17:17 # +3
print 26.12.2009 04:06 # 0
guest 26.12.2009 08:07 # −1
chem
guest 26.12.2009 11:05 # +1
guest 26.12.2009 15:18 # 0
$page = $_GET['page'].'.inc';
guest 26.12.2009 16:11 # +1
И то если соответствие полное, а то вон самый первый файл называется с большой буквы.
guest 26.12.2009 19:41 # +2
Вариант раз: более быстрый, менее гибкий (для добавления нового модуля надо править код).
Вариант два: более гибкий (чтобы добавить новый модуль, нужно просто залить новый файл), менее быстрый (за счёт дополнительной дисковой операции по определению существования файла). Обращаю внимание на вызов ctype_alnum() - так мы проверяем, что имя содержит только буквы и цифры, чтобы нам не могли подставить туда слэшей и точек и стянуть файл из другой директории.
З.Ы. Ниже правильно сказали, что должно быть
> соответствие полное, а то вон самый первый файл называется с большой буквы.
Я об этом помню, просто показал, как должен бы выглядеть код в посте, на который я отвечаю.
guest 26.12.2009 19:43 # 0
selffix
guest 27.12.2009 03:55 # +1
Даже если ты хотел написать file_exists - все равно твой код еще больший говнокод, чем у автора, ибо addslashes не экранирует точки
guest 27.12.2009 09:57 # 0
guest 02.01.2010 22:31 # 0
HyperGeek 26.12.2009 14:45 # 0
azzz 27.12.2009 11:17 # 0
guest 27.12.2009 18:10 # 0
guest 29.12.2009 14:38 # 0
guest 05.01.2010 07:45 # +1