[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите с постраничной навигацией
ak_lucky_47
смотрите захожу допустим на мой сайт.ru/?page=home все нормально ошибок нет
а если захожу просто на мой сайт.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 - предупреждение,что нет переменной. Раньше вывод ошибок был отключен, а ошибка была сама по себе.

Спустя 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

Спустя 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';

не может быть smile.gif

Спустя 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 через запятые можно писать smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.