Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 792
от 17.10.2007, 19:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 444, Экспертов: 39
В номере:Вопросов: 1, Ответов: 3


Вопрос № 105130: Здравствуйте ! У меня такой вопрос. Обьясните мне пожалста как передавать параметры через url адрес , или как там правильно)). Ну допустим хотя бы взять адрес этой страницы, где я задаю вопрос : http://rusfaq.ru/?Step=ask&ID0=5&ID1=3&ID...

Вопрос № 105.130
Здравствуйте ! У меня такой вопрос. Обьясните мне пожалста как передавать параметры через url адрес , или как там правильно)).
Ну допустим хотя бы взять адрес этой страницы, где я задаю вопрос :

http://rusfaq.ru/?Step=ask&ID0=5&ID1=3&ID2=22

У нас есть 4 параметра: step, id0, id1, id2. Каждый получает определенное значение в зависимости от выбранной мною категории. Так вот мне интересно, а как это все работает.

К примеру:
Мне нужно чтобы в зависимости от выбранной пользователем ссылки на экране появлялась та или иная информация. Допустим у меня есть сайт со сборником книг. На странице находится 30 ссылок , каждая представляет собой определенный раздел: скажем фантастика, детективы..... В зависимости от нажатой пользователем ссылки отображается список книг данного раздела. Возможно ли все это запихать в один php файл ?
Просто не хочется создавать 30 html файлов , а потом еще для каждой книги свой файл.

Обьясните пожалста как все это организовать. Если можно с исходником. Спасибо.
Отправлен: 12.10.2007, 00:53
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Azrr
Здравствуйте, Whiteman!
Есть множество вариантов:
1) В зависимости от параметра подгружать нужную страницу файл (нужно быть осторожным, т.к. можно будет подставить в запрос любой сторонний файл)
Запрос http://somesite.ru/script.php?file=fantastic подгрузит fantastic.html

2) Запихать всё в один файл (получится очень большой файл)

Приложение:

Ответ отправил: Azrr (статус: 6-ой класс)
Ответ отправлен: 12.10.2007, 01:08
Оценка за ответ: 4

Отвечает: Nexus
Здравствуйте, Whiteman!

Не соглашусь с предыдущим экспертом - какой смысл инклудить хтмл'и в пхп файл - если уж все-равно эти 30 хтмл файлов создавать, так лучше их оставить обычным хтмлом, роботам с ними проще работать

Для каталога лучше использовать базу. Описания и названия книг и категорий хранятся в базе. Создается один html для книги (темплейт страницы), в котором вставками пхп-кода выводятся описание/название той книги, идентификатор который скрипт получил в качестве параметра. Ну и аналогично с категорией. Потом еще в идеале при помощи mod_rewrite перевести урл в псевдостатический, т.е. вместо http://site.com/book.php?id=1 будет например http://site.com/book1.html.

По базе - в самом простом случае нужно 2 таблицы - категорий и книг. Если в каталоге не может быть подкатегорий то все просто:

Categories
-------------
id
name
description

Books
-------------
id
cat_id
name
description

если могут быть подкатегории - для каталога нужно хранить еще либо parent_id (проще в реализации), либо left, right, level - работает быстрее, но такое дерево реализовать сложнее.

приводить код думаю смысла особого нет - десятью строчками тут не обойдешься, а полный - у меня есть только полноценный интернет-магазин, там многовато будет :)
Ответ отправил: Nexus (статус: 10-ый класс)
Ответ отправлен: 12.10.2007, 15:49
Оценка за ответ: 5

Отвечает: Hid
Здравствуйте, Whiteman!
Дам пример с использованием базы данных.
Для начала создаете таблицу в базе данных из трех полей ID; link и name (с именем book_kateg например). Первое поле - индекс с параметром автозаполнение, второе имя таблицы базы данных с инфой о книгах определнного раздела (фантастика, детективы)(таблицы кстати тоже нужно создать). После этого в файле например index.php создаете скрипт, в котором сперва проверяете передачу параметров через url то есть методом GET например так:
<?php
if (!isset($_GET['kateg']))// если в урле ничего не передается выводим список категорий
{
include('modul/home.php');..подключаем файл с сылками на категории
}
else
{
//запрашиваем имя таблицы категорий из таблицы book_kateg по переменной $_GET['kateg'с индексом на таблицу и далее выводим инфу из таблицы с книгами соответствующей категории (фантастика, детективы)

}
?>

в файле home.php пишете скрипт запроса к таблице book_kateg и вывода в браузер тех самых 30 ссылок на категории программ вида
echo '<p><a href="http://www.vash_sait/index.php?kateg='.$kateg.'">'.$name.'</a>.; При формировании ссылок в цикле вместо $kateg скрипт поставит числа 1,2,3..., а вместо $name название категории, значения которых беруться из таблицы book_kateg. Кстати в таблицу можно добавить еще одно поле с описанием категории и выводить еще и его после названия.
Примерно так. Полностью скрипт не привожу. Его нужно писать под конкретную базу данных, но основная идея, я думаю, понятна. Не мешает еще сделать скрипт безопасным - выполнять проверку переменных, полученных методом GET.
Кстати этот тот же принцип можно использовать и при хранении информации и в текстовых файлах. Если нужны пояснения пишите в личку, либо на мыло serg-gor@yandex.ru
Удачи!
Ответ отправил: Hid (статус: 1-ый класс)
Ответ отправлен: 12.10.2007, 20:08


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.61.1 от 16.10.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное