|
|
|
| Пример: В одну страницу допустим index.php инклудится другой файл test.html . Имя включамого файла и путь к нему содержаться в переменной.
Примерно так:
index.php?news_link=test.html
|
Как проверить, что было введено после index.php?news_link=?
Например если у меня будет лежать в корне файл .htaccess, то поправив адрес таким образом:
index.php?news_link=.htaccess
|
Выведется содержимое данного файла.
Как избавиться от этой бяки? | |
|
|
|
|
|
|
|
для: TuX
(15.07.2005 в 15:23)
| |
if(isset($_GET["news_link"]) && !empty($_GET["news_link"]))
{
print "введено: " . $_GET["news_link"];
}else{
print "ничего не введено!";
}
|
| |
|
|
|
|
|
|
|
для: XPraptor
(15.07.2005 в 15:29)
| | дык а как это применить? У меня же каждый раз при клике по ссылкам будет срабатывать
только первое условие, я ведь передаю переменную как-никак каждый раз. | |
|
|
|
|
|
|
|
для: TuX
(15.07.2005 в 15:43)
| | Можно пойти другим путем: создать массив с именами страниц:
<?
$p[0]="index.htm";
$p[1]="about.htm";
....
if(!array_key_exists($id,$p)) $id = 0; //если элемента с введенным индексом не существует, то используем страницу по умолчанию.
print "Выбрана страница ".$p[$id];
?>
|
А адрес будет вида:
| |
|
|
|
|
|
|
|
для: Loki
(15.07.2005 в 17:04)
| | Согласен, но тогда теряеться логический элемент. Ведь текстовое название запомнить легче. | |
|
|
|
|
|
|
|
для: Akira
(15.07.2005 в 17:45)
| | можно сделать ассоциированный массив.
просто массив с числовыми индексами проще потом использовать в целях навигации. | |
|
|
|
|
|
|
|
для: Loki
(15.07.2005 в 18:17)
| | да, но предеться каждую страницу добавлять в массив, а это означает, что надо редактировать скрипт. С другой стороный, ваш способ намного удобнее :) | |
|
|
|
|
|
|
|
для: Akira
(15.07.2005 в 20:11)
| | Не совсем так: карта сайта выносится в один файл, который подключается ко всем файлам. Массив можно сделать многомерным, чтобы от содержал, например, заголовок окна, название подключаемой страницы, названия ссылок для меню и названия ссылок для дополнительных меню навигации. В общем, если напрячь фантазию, то можно найти в этом способе кучу преимуществ, а недостаток по прежнему один: надо все эти пункты добавлять вместе с новой страницей. Так что, если новые страницы на сайте - частое явление, то нужно как-то оптимизировать этот способ или искать другой:) | |
|
|
|
|
|
|
|
для: TuX
(15.07.2005 в 15:23)
| |
substr($_GET["news_link"],0,strpos($_GET["news_link"],".")); /* То, что перед "." */
substr($_GET["news_link"],strpos($_GET["news_link"],".")); /* То, что после "." */
|
Т.е. для index.php?news_link=.htaccess будет в первом случае пусто, во втором htaccess, отсюда
<?php
$link= substr($_GET["news_link"],0,strpos($_GET["news_link"],"."));
if(empty($link))
{
echo "Неправельный запрос";
exit;
}
?>
|
Только, что проверил. Все работает. Если этот код вставить в "шапку" то при не правельном запросе не выдаст не чего кроме "Неправельный запрос" | |
|
|
|
|
|
|
|
для: TuX
(15.07.2005 в 15:23)
| | Так лучше не делать (это ответ на первый пост)
Я чаще делаю так.
<?
$mode = $_GET['mode'];
switch($mode)
{
case 'index' : include "index.php"; break;
case 'news' : include "news.php"; break;
case 'download' : include "download.php"; break;
default : header("location: index.php");
}
?>
|
1. Указывается не сам файл.
2. Отработаны все варианты. | |
|
|
|
|
|
|
|
для: Artem S.
(16.07.2005 в 07:17)
| | Данный код
<?php
$link= substr($_GET["news_link"],0,strpos($_GET["news_link"],"."));
if(empty($link))
{
echo "Неправильный запрос";
exit;
}
?>
|
почему-то не работает при таком запросе
http://www.xxxxxx.ru/page.php?news_link=/home/xxxxxx/public_html/page.php
|
Выводится полный код страницы page.php | |
|
|
|