AmberLEXОй, тьфу, правда. Что-то ступил.
twinА, при установке все это будет выключено что ли?
Гость_baston
25.01.2010 - 18:33
Николай, вот обнаружились опечатки в курсе (ниже), а пока вопрос:
Зачем включать модуль перенаправления, если этот модуль у нас прописывается в .htaccess? Может быть как-нибудь его оттуда вытаскивать, если это возможно?
Теперь об опечатках.
Вы пишите:
1.
Цитата |
Еще в конфиге определим две константы. Обратите внимание на префиксы констант... |
Однако, там приводятся три константы.
2. В комментариях к коду файла variables.php вы пишите:
Цитата |
* 3. Записываем полученные значения во временный массив $get */ $param = explode('/', trim($_GET['route'], '/')); |
Однако, мы записываем это в массив $param, а не $get.
Спасибо.
baston
25.01.2010 - 18:36
Гость_baston это я. Прошу прощения...
Исправил. А на счет
Цитата |
Зачем включать модуль перенаправления, если этот модуль у нас прописывается в .htaccess? |
в .htaccess отключается сам модуль, а в
скрипте меняется вид ссылок. За это и отвечает константа.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
baston
27.01.2010 - 18:52
Николай, не поверите, но только сейчас, спустя несколько дней, я понял механизм работы и проверки константы IRB_KEY:
Цитата |
В файл index.php первой строчкой пишем это:
* Installation of a key of access to files * Установка ключа доступа к файлам */ define('IRB_KEY', true);
а в config.php это:
* Generation of page of an error at access out of system * Генерация страницы ошибки при доступе вне системы */ if(!defined('IRB_KEY')) |
То есть, если я правильно это понимаю, данная константа у нас существует в единственном числе (со значением true) только в файле index.
php, в остальных файлах ее нет. И когда мы в других файлах делаем проверку ее определения, то естественно, что мы ее не находим, а значит доступ к файлу закрыт.
Как озарило, прямо
Верно я думаю?
Верно.))
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
А можно совсем нубский вопрос.
на строки типа
"include IRB_ROOT .'/variables.php'"
у меня сервер ругается
"Warning: include(Z:/home/localhost/www/variables.php) [function.include]: failed to open stream: No such file or directory in Z:\home\localhost\www\our\index.php on line 48"
Думал может что-то я не так пишу. Взял файлы из архива, разместил на своем сервере, все-равно ругается...
baston
28.01.2010 - 12:47
Так он и пишет, что у вас нет такого файла. Проверьте, есть у вас файл переменных в корне сайта? У вас он, похоже прописан не туда в индексе...
Вот поэтому лучше делать описанный урок своими руками, то есть код самому писать, папки создавать и т.д.
Читайте варнинги. Там все написано. Вот путь, по которому
скрипт ищет файл:
Z:/home/localhost/www/variables.phpа вот где сам
скрипт:
Z:\home\localhost\www\our\index.phpА значит нужно дописать к путям эту папку:
define('IRB_ROOT', str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT'] .'/our'));
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Позволю высказать одно впечатление от этого урока и уточнить.
1. В коде файла variables.php мы вводим первое условие на проверку включения модуля перенаправления (IRB_REWRITE) и наличия параметров в адресной строке (!empty($_GET['route'])).
Во втором условии мы проверяем всего лишь наличие GET-параметров: elseif(count($_GET)).
Вопрос-уточнение: во втором условии мы могли бы заменить это выражение на выражение из первого условия - !empty($_GET['route'])? Ведь по сути, это одно и то же. Хотя, писать во втором случае нам придется меньше... Но, все-таки?
2. В конце урока вы предлагаете сделать переключатель модулей с помощью функции Switch. Я знаю, что делает эта функция. Но я не могу знать (пройдя лишь два урока) о каких модулях идет речь. Ведь о них не было сказано ни полслова. И даже не был приведен алгоритм переключения. Мне кажется, здесь налицо упущение, недоговоренность в уроке, которую можно было бы устранить.
P.S. Я не читал комментарии, только пробежался глазами.
Спасибо и надеюсь на пояснения.
Цитата |
Вопрос-уточнение: во втором условии мы могли бы заменить это выражение на выражение из первого условия - !empty($_GET['route'])? Ведь по сути, это одно и то же. Хотя, писать во втором случае нам придется меньше... Но, все-таки? |
Не уловил мысли...
Второе условие - наличие GET параметров. Эта часть отвечает за инициализацию без модуля перенаправления, а значит никакой $_GET['route'] там нет в помине. Есть набор переменных $_GET['page'], $_GET['rem'] и так далее...
Цитата |
Но я не могу знать (пройдя лишь два урока) о каких модулях идет речь. |
Тут да, увлеклись маленько. Перепишу задание.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 2.02.2010 - 22:46) |
Второе условие - наличие GET параметров. Эта часть отвечает за инициализацию без модуля перенаправления, а значит никакой $_GET['route'] там нет в помине. |
Ступил, сознаюсь.
Спасибо.
AmberLEX
19.02.2010 - 14:33
Так я и не выяснил, если будет категория в галереи или в статьях, то придется добавить еще один GET-параметр:
$GET = array(
'page' => 'main',
'rem' => 'read',
'сid' => 0,
'id' => 0,
'num' => 0,
);
И получается в новостях ссылка типа: _http://irbis/news/read/0/0/1 Т.е. всегда будет присутствовать cid=0, хотя в новостях он не используется.
Это так и будет? Как-то не очень красиво. Или с этим что-то делать будем?
_____________
1. Чудес не бывает.
2. Дерьмо случается.
ЧПУ вообще вещь некрасивая на мой взгляд. Противоестественная и ресурсоемкая.
А сделать можно только одно - пронумеровать их и использовать в порядке поступления. Что бы нули были всегда в конце. Тогда их можно будет обрезать в функции href()
На мой взгляд это лишнее. Кто сейчас на красоту адресной строки смотрит. вон гугл какие выдает - всем плевать.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Добрый вечер! Помогите нубу. Не могу понять что значит выражение - $page = !empty($_GET['page'])?$_GET['page']:NULL; первая часть смысл вроде понятен - $page = !empty($_GET['page']) а вот ?$_GET['page']:NULL не ясно что делается. По уроку после получения GET переменной, переходя по ссылкам грузится одна и таже первая страница, хотя переменные передаются в браузер (http://my-site.ru/?mod=main и mod=second). При нажатии на любую ссылку выводится сообщение Жизнь прекрасна!

файла main.tpl. В чём моя тупость? Спасибо!
PS. swith-case такой же как и в уроке.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.