Первый день начал изучать php, так что вопрос может и глупый Нужно сделать ссылки вида index.php?page=main Код выглядит так: PHP: switch ($p) { case null : include ('main.php'); break; case 'main': include ('main.php'); break; case 'news': include ('news.php'); break; default: include ('error.php'); break; } Ссылки работают, НО если смотреть без ?p (сайт.ру), то будет следующение: Notice: Undefined variable: p in T:\home\virtual\домен\index.php on line 3 Вопрос: Что делать с p? :roll: Видел такой код на этом форуме, но там ничего не сказано про это. Так же пробовал вот так (нашел на этом форуме): PHP: $page = $_GET ['page']; if (!empty ($page)) { if ($page == 'admin') echo 'Вы находитесь в панели администратора'; elseif ($page == 'news') echo 'Вы находитесь на новостной ленте'; elseif ($page == 'feedback') echo 'Вы находитесь в форме обратной связи'; else echo 'Неизвестный параметр page'; } echo "<br /><br />Навигация<br />"; echo "<a href='?page=admin'>Панель администратора</a><br /> <a href='?page=news'>Новостная лента</a><br /> <a href='?page=feedback'>Обратная связь</a>"; Точно такойже результат без ?page
PHP: $page = isset($_GET ['page']) ? $_GET ['page'] : NULL; switch ($page){ case null : include ('main.php'); break; case 'main': include ('main.php'); break; case 'news': include ('news.php'); break; default: include ('error.php'); break; }
PHP: $page = isset($_GET ['page']) ? $_GET ['page'] : 'main'; switch ($page){ case 'main': include ('main.php'); break; case 'news': include ('news.php'); break; default: include ('error.php'); } Так лучше?
Сам не понял что сделал, но первый код заработал PHP: $page = isset($_GET ['page']) ? $_GET ['page'] : NULL; switch ($page) { case null : include ('main.php'); break; case 'main': include ('main.php'); break; case 'news': include ('news.php'); break; default: include ('error.php'); break; } Спасибо
PHP: <? if(!isset($page))$page="home"; //если страница пуста то откроется страница home.php (етот файл тоже должен быть расположен в pages/ include("pages/".$page.".php"); //Где pages/ - папка со страницами сайта. ?> И мы получим ссылки вида : ?page=main
Можно и так: PHP: <?php // $_GET function get($name = NULL) { if(isset($_GET[$name])) { if(get_magic_quotes_gpc()) { $get = stripslashes($_GET[$name]); } else { $get = $_GET[$name]; } } else { $get = false; } return $get; } А потом так: PHP: <?php $mod = ($mod = get('m'))? $mod : die(header('location:?m=news')) ; $mods = array('news', 'gb',); if(!in_array($mod, $mods)) die(header('location:?m=news')) ; // или ошибку выводим require_once 'modules/'.$mod.'.php';
да с гетом, в принципе тоже, но массивы обычно через пост передаются. Так вот, если передавать массив значений (ну набор чекбоксов, например), то будет «Array to string conversion» и данных не получишь. stripslashes всё похерит