а если захожу просто на мой сайт.ru то появляется ошибка Notice: Undefined index: page in C:\VertrigoServ\www\global\inc\pages.php on line 2
2 строчка у меня $page = $_GET['page'];
как это исправить раньше все пахало нормально
вот сам код
<?php
$page = $_GET['page'];
if ($page == '') { require('./global/pages/home.php'); };
if ($page == 'home') { require('./global/pages/home.php'); };
if ($page == 'register') { require('./global/pages/register.php'); };
if ($page == 'connect') { require('./global/pages/connect.php'); };
if ($page == 'online') { require('./global/pages/online.php'); };
if ($page == 'cp') { require('./global/pages/cp.php'); };
if ($page == 'error') { require('./global/pages/error.php'); };
?>
Спустя 3 минуты, 48 секунд (17.11.2011 - 18:27) killer8080 написал(а):
$page = !empty($_GET['page']) ? $_GET['page'] : '';
Спустя 54 секунды (17.11.2011 - 18:28) inpost написал(а):
ak_lucky_47
Warning - предупреждение,что нет переменной. Раньше вывод ошибок был отключен, а ошибка была сама по себе.
Warning - предупреждение,что нет переменной. Раньше вывод ошибок был отключен, а ошибка была сама по себе.
Спустя 17 минут, 22 секунды (17.11.2011 - 18:45) ak_lucky_47 написал(а):
Вот спасибо теперь буду знать
Спустя 9 минут, 53 секунды (17.11.2011 - 18:55) ak_lucky_47 написал(а):
И я хотел бы узнать как можно защитить это все от инъекций и прочей чуши,
проверкой имени файла а ещё есть какие нибудь варианты?
проверкой имени файла а ещё есть какие нибудь варианты?
Спустя 17 минут, 7 секунд (17.11.2011 - 19:12) killer8080 написал(а):
Цитата (ak_lucky_47 @ 17.11.2011 - 18:55) |
И я хотел бы узнать как можно защитить это все от инъекций и прочей чуши, проверкой имени файла а ещё есть какие нибудь варианты? |
В твоем коде никаких инъекций быть не может. Правда он далек от совершенства, вместо кучи if-ов, логичней было бы if-elseif-else, а ещё лучше switch, для таких целей он и предназначен. Хотя я предпочел бы применить массив. :)
$pages = array(
'home' => './global/pages/home.php',
'register' => './global/pages/register.php',
'connect' => './global/pages/connect.php',
'online' => './global/pages/online.php',
'cp' => './global/pages/cp.php',
'error' => './global/pages/error.php'
);
if(isset($_GET['page']) && in_array($_GET['page'], $pages)){
include $pages[$_GET['page']];
}
else
include './global/pages/home.php';
Спустя 14 минут, 40 секунд (17.11.2011 - 19:27) ak_lucky_47 написал(а):
<?php
if (isset($_GET['page']))
{
if ($_GET['page'] == 'home') { require('./global/pages/home.php'); }
elseif ($_GET['page'] == 'register') { require('./global/pages/register.php'); }
elseif ($_GET['page'] == 'connect') { require('./global/pages/connect.php'); }
elseif ($_GET['page'] == 'online') { require('./global/pages/online.php'); }
elseif ($_GET['page'] == 'cp') { require('./global/pages/cp.php'); }
elseif ($_GET['page'] == 'error') { require('./global/pages/error.php'); }
else { require('./global/pages/home.php'); }
}
else
{ require('./global/pages/home.php'); }
?>
получилось так
Спустя 42 секунды (17.11.2011 - 19:27) m4a1fox написал(а):
killer8080
Красивое решение! Можно еще через switch & case
Красивое решение! Можно еще через switch & case
Спустя 33 секунды (17.11.2011 - 19:28) m4a1fox написал(а):
ak_lucky_47
Тебе же дали уже готовое решение!
Тебе же дали уже готовое решение!
Спустя 3 минуты, 20 секунд (17.11.2011 - 19:31) ak_lucky_47 написал(а):
m4a1fox
то не работает выполняется только
то не работает выполняется только
}
else
include './global/pages/home.php';
Спустя 4 минуты, 32 секунды (17.11.2011 - 19:36) killer8080 написал(а):
со свичем так
$page = !empty($_GET['page']) ? $_GET['page'] : '';
switch ($page) {
case 'home':
include './global/pages/home.php';
break;
case 'register':
include './global/pages/register.php';
break;
case 'connect':
include './global/pages/connect.php';
break;
case 'online':
include './global/pages/online.php';
break;
case 'cp':
include './global/pages/cp.php';
break;
case 'error':
include './global/pages/error.php';
break;
default:
include './global/pages/home.php';
break;
}
Спустя 1 минута, 40 секунд (17.11.2011 - 19:37) killer8080 написал(а):
Цитата (ak_lucky_47 @ 17.11.2011 - 19:31) |
то не работает выполняется только } else include './global/pages/home.php'; |
не может быть
Спустя 3 минуты, 15 секунд (17.11.2011 - 19:41) killer8080 написал(а):
а пардон, ошибочка вышла
$pages = array(
'home' => './global/pages/home.php',
'register' => './global/pages/register.php',
'connect' => './global/pages/connect.php',
'online' => './global/pages/online.php',
'cp' => './global/pages/cp.php',
'error' => './global/pages/error.php'
);
if(isset($_GET['page']) && isset($pages[$_GET['page']])){
include $pages[$_GET['page']];
}
else
include './global/pages/home.php';
Спустя 11 минут, 42 секунды (17.11.2011 - 19:52) inpost написал(а):
killer8080
isset через запятые можно писать
isset через запятые можно писать