Jump to content
  • 0

Переменная "?page" в урл без значения. Как с ней работать?


Semreg
 Share

Question


Работаю над структурой для сайта.

Я знаю, что можно приинклудить страницу вот таким образом если переменная "page" в урл содержит какое то значение:

$my = $_GET

include("$my");


;

Встретил в нете вот такой урл, который ведет на определенную страницу:

Как приинклудить страницу, которая указывается в урл таким образом?

Ищу в рунете ответ на свой вопрос, но пока так и не нашел )

Link to comment
Share on other sites

Recommended Posts

  • 0

Дык мод реврайт вроде преобразовывает в данном случае ссылки в чпу и при чем тут он?

Тут ведь еще работа с бд будет походу.

Тут надо что-то типа:

<?php 
if (isset($_GET['page']))
{
$page = $_GET['page'];
if ($page == 'test')
{
include("page.php");
}
}
?>

Не знаю, может я и ошибаюсь...

Edited by rus
Link to comment
Share on other sites

  • 0

угу, с ним хоть что сделать можно.

Рус а что ты предлогаешь?)

Может его и нет, парсится все с помощью пхп, но мне это не понять, это же столько условий прописывтаь нужно.

Edited by AMD
Link to comment
Share on other sites

  • 0
угу, с ним хоть что сделать можно.

Рус а что ты предлогаешь?)

Может его и нет, парсится все с помощью пхп, но мне это не понять, это же столько условий прописывтаь нужно.

Да, если страниц много, то конеш подход другой будет.

Link to comment
Share on other sites

  • 0
rus, ну прописывать в таком количестве ифы не вариант )

У меня там штук 100 страниц. Я их обалдею все прописывать...

Дык говорите копать в сторону мод-реврайта?

У тебя из бд вытягиваются страницы?

Link to comment
Share on other sites

  • 0
У тебя из бд вытягиваются страницы?

Я пока только стал разбираться со структурой сайта.

В настоящий момент в бд у меня никаких урлов не прописано.

Я думал сделать индех.хтмл единой точкой входа. Оставить в нем шапку, подвал, все остальные блоки.

А контент каждой страницы инклудить внутрь этого индекса.хтмл

Но урл типа:

мне поредставляется более привлекательным для большинства страниц, чем:

Link to comment
Share on other sites

  • 0
там просто страница с именем index..., а при отсутствии имени файла в url сервером используется первый найденный файл index

Вы про что имеете ввиду? Не понял?

Вот пример такой страницы, о которой я говорил выше: http://la2.theabyss.ru/?news

Link to comment
Share on other sites

  • 0
Вы про что имеете ввиду? Не понял?

Вот пример такой страницы, о которой я говорил выше: http://la2.theabyss.ru/?news

ну и это равнозначно http://la2.theabyss.ru/index.php?news

в место пропущенного имени файла вставляется первый найденный индексный файл. это стандартная функция сервера, тут модреврайт не при чем.

а в этой записи http://la2.theabyss.ru/index.php?news слово news означает, что определена переменная news в массиве $_GET[]. т.е. условие if (!isset($_GET["news"])) в этой ситуации будет давать истину, а если будет например http://la2.theabyss.ru/index.php?news1, то if (!isset($_GET["news"])) будет давать ложь.

Edited by Searcher
Link to comment
Share on other sites

  • 0

Короче какой-то такой костыль можно залепить

foreach($_GET as $key=>$value)
{
include($key.".php");
break;
}

Можно, наверно, как-то по-нормальному получить ключ первого элемента, но мне лень думать.

Link to comment
Share on other sites

  • 0

Searcher, да понятно, что страница через индексный файл обрабатывается :unsure:

ну и это равнозначно http://la2.theabyss.ru/index.php?news

Дык вполне может быть, что ссылка фактически имеет вид: http://la2.theabyss.ru/index.php?page=news, а урл обработан через мод-реврайт.

Я сейчас в нете читаю про мод-реврайт. Он именно такими штуками и занимается.

Нужно только в синтаксисе его разобраться.

Link to comment
Share on other sites

  • 0

Нашел как эта лабуда делается: http://mysitez.km.ua/Programming/?withoutmodrewrite

Извлекает значение из глобального массива $_SERVER

Написано, якобы метод хуже, чем ЧПУ через mod_rewrite.

Searcher, а ты грил:

if (!isset($_GET["news"]))

Кстати mod_rewrite категорически отказывается вставлять знаки вопроса в урл.

У меня так и не получилось добиться того, чтобы при включенном мод-реврайте можно было в урл знак вопроса вставить...

Давайте дискутировать и спорить какие урлы лучше? :unsure:

Кому какие урлы больше нравятся? :lol:

1) ничего не делаем:

http://site.ru/?razdel=kadabra&page=news&date=21102009

2) обрабатываем глобальныйй массив $_SERVER:

http://site.ru/?kadabra&page=news&date=21102009

3) обрабатываем через mod_rewrite:

http://site.ru/kadabra/news/21102009

Мне почемуто больше всего 2й вариант нравиться...

Edited by Semreg
Link to comment
Share on other sites

  • 0
Мне почемуто больше всего 2й вариант нравиться...

Со вторым вариантом больше возможности поломать вам базу, если нет никаких защит при соединении с ней, типа real_escape. :lol:

А третий - самое то. :unsure:

Link to comment
Share on other sites

  • 0
Со вторым вариантом больше возможности поломать вам базу, если нет никаких защит при соединении с ней, типа real_escape. smile.gif

А третий - самое то.

Почему? Потому что имена переменных не видны юзверям и хакерам?

Link to comment
Share on other sites

  • 0
Нашел как эта лабуда делается: http://mysitez.km.ua/Programming/?withoutmodrewrite

Извлекает значение из глобального массива $_SERVER

Написано, якобы метод хуже, чем ЧПУ через mod_rewrite.

Searcher, а ты грил:

Кстати mod_rewrite категорически отказывается вставлять знаки вопроса в урл.

У меня так и не получилось добиться того, чтобы при включенном мод-реврайте можно было в урл знак вопроса вставить...

Давайте дискутировать и спорить какие урлы лучше? :D

Кому какие урлы больше нравятся? :D

Мне почемуто больше всего 2й вариант нравиться...

ну php вообще богат на различные методы реализации одной задачи :angry: А вид url меня обычно мало волнует поскольку большинство пользователей на url почти не обращают внимания, а если и обращают, то только на первую часть. Все, что после 3-го / для них уже малопонятная и чисто техническая информация. Сейчас огромное количество инструментов, которые позволяют быстро найти ранее где-то виденную инфу. Ну это чисто мое мнение, основанное на собственных наблюдениях...

Link to comment
Share on other sites

  • 0

Решил замарочиться с ЧПУ. Возникли некоторые вопросы.

Структура сайта у меня вырисовывается такая:

index.php - в корне,

10 папок - соответсвующих разделам сайта.

В каждой из этих папок лежат *.php файлы с контентом страниц, которые инклудятся в индех.пхп.

Таким образом чтобы приинклудить определенную страницу у меня задействовано 2 переменные:

http://my-site.ru/index.php?section=news&page=22102009

В .htaccess через mod_rewrite урл приобретает такой вид:

http://my-site.ru/news/22102009/

Дык вот какой созрел вопрос:

Некоторые страницы обрабатывают переменные которые в них подаются, т.е. значения переменных должны добавляться в урл страницы чтобы она получила данные.

Присоветуйте, как мне эти переменные передавать, а именно их визуал в урл.

Допустим фактически мой урл выглядит так:

http://my-site.ru/index.php?section=news&a...&fragment=7

Какой формат урла в данном случае оптимально показывать пользователю?

Такой:

http://my-site.ru/news/22102009/1/14/7/

или такой:

http://my-site.ru/news/22102009/time-1/region-14/fragment-7/

или такой:

http://my-site.ru/news/22102009/#time=1&am...&fragment=7

Присоветуйте, что-нибудь плз :angry:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy