Вопрос № 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