PHP заменить параметры страницы - PullRequest
0 голосов
/ 10 сентября 2011

Я очень новичок в PHP и MySQL, и у меня есть несколько вопросов.

Во-первых, у меня есть такое меню: home.php, about.php и т. Д. Когда кто-то обращается к home.php? Page = 1 & opt = 2 & etc, я хочу, чтобы URL отображался domain.com/home/1/2 / и т. Д.Есть ли способ достичь этого?

Во-вторых, это хорошая практика, чтобы сохранить содержимое страниц в базе данных, а затем отобразить его из этой базы данных при запросе страницы?Я имею в виду, если ссылка home.php? Page = 1 & opt = 2 & etc, я должен выполнить опрос базы данных MySQL с этими параметрами, и если он найден, мне нужно отобразить поле (которое содержит код html / php).Это правильно?Или какой у меня подход?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 10 сентября 2011

Во-первых, у меня есть такое меню: home.php, about.php и т. Д. Когда кто-то обращается к home.php? Page = 1 & opt = 2 & etc, я хочу, чтобы URL отображался domain.com/home/1/2/etc. Есть ли способ добиться этого?

Как сказал полковник Шрапнель, все наоборот, но вы должны сделать что-то еще. Эта статья может вам помочь. http://www.addedbytes.com/for-beginners/url-rewriting-for-beginners/

Или, если вы используете Apache, вы можете сделать что-то вроде этого:

В вашем .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?args=$1 [QSA,L]
</IfModule>

Это вернет запрошенный ресурс, если он существует, или преобразует ваш URL: www.domain.com/1/2 в www.domain.com/index.php?args=/1/2

Где-то в вашем PHP: Вам придется проанализировать один параметр: $ _GET ["args"] Который из примера будет содержать "/ 1/2"

Обратите внимание, что все запросы будут поступать через index.php.

Я бы посоветовал вам тщательно продумать свой URL и написать как можно более общий анализатор. Например: Будет ли / x / y всегда означать: страница = x opt = y или иногда это будет означать, например, invoice = x line = y? Может быть, вы могли бы добавить дополнительную информацию к запросу: www.domain.com/pages/1/2 Будет явно ссылаться на страницы.

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

0 голосов
/ 10 сентября 2011

РЕДАКТИРОВАТЬ.
Ну, исходя из ваших комментариев, вот еще один ответ.

Не связывайтесь с URL.Просто забудь об этом на время.Ведь это просто украшение.Это сбивает вас с толку и тратит слишком много времени, хотя это гораздо менее важно, чем ваша главная цель - сам сайт.Пойдите для некоторого учебника (я полагаю, что у Pointpoint.com есть такой) и узнайте, как создать сайт, управляемый PHP + mysql.Это не тема, на которую можно ответить в ответе с 2 параграфами.На самом деле, люди ходят на занятия около года, чтобы получить основы.Вы слишком много просите, как будто веб-разработка - это глупая игра.Это не.

Когда кто-то получает доступ к home.php? Page = 1 & opt = 2 & etc, я хочу, чтобы URL отображался domain.com/home/1/2/etc

Существуетв этом нет никакого смысла.
Единственное, что разумно, - это наоборот: кто-то получает доступ к domain.com/home/1/2/etc, но реальный обработанный адрес - home.php? page = 1 & opt = 2 & etc

Я должен выполнить опрос базы данных MySQL с этими параметрами, и, если он найден, я должен отобразить поле

Да.
Вы на правильном пути.Именно так работает каждый сайт в мире.

(который содержит html / php код).Это правильно?

Да, но с одним исправлением: без PHP .Только HTML

...