[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Курсы PHP. Урок №2 от IRBIS-team
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
7ion
AmberLEX

Ой, тьфу, правда. Что-то ступил.

twin

А, при установке все это будет выключено что ли? huh.gif
Гость_baston
Николай, вот обнаружились опечатки в курсе (ниже), а пока вопрос:
Зачем включать модуль перенаправления, если этот модуль у нас прописывается в .htaccess? Может быть как-нибудь его оттуда вытаскивать, если это возможно?

Теперь об опечатках.
Вы пишите:
1.
Цитата
Еще в конфиге определим две константы. Обратите внимание на префиксы констант...

Однако, там приводятся три константы.

2. В комментариях к коду файла variables.php вы пишите:
Цитата
* 3. Записываем полученные значения во временный массив $get
*/
        $param = explode('/', trim($_GET['route'], '/'));


Однако, мы записываем это в массив $param, а не $get.

Спасибо.
baston
Гость_baston это я. Прошу прощения...
twin
Исправил. А на счет
Цитата
Зачем включать модуль перенаправления, если этот модуль у нас прописывается в .htaccess?

в .htaccess отключается сам модуль, а в скрипте меняется вид ссылок. За это и отвечает константа.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
baston
Николай, не поверите, но только сейчас, спустя несколько дней, я понял механизм работы и проверки константы 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, в остальных файлах ее нет. И когда мы в других файлах делаем проверку ее определения, то естественно, что мы ее не находим, а значит доступ к файлу закрыт.
Как озарило, прямо laugh.gif
Верно я думаю?
twin
Верно.))

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
DieM
А можно совсем нубский вопрос.
на строки типа
"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
Так он и пишет, что у вас нет такого файла. Проверьте, есть у вас файл переменных в корне сайта? У вас он, похоже прописан не туда в индексе...
Вот поэтому лучше делать описанный урок своими руками, то есть код самому писать, папки создавать и т.д.
twin
Читайте варнинги. Там все написано. Вот путь, по которому скрипт ищет файл:
Z:/home/localhost/www/variables.php
а вот где сам скрипт:
Z:\home\localhost\www\our\index.php
А значит нужно дописать к путям эту папку:
    define('IRB_ROOT', str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT'] .'/our'));


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
baston
Позволю высказать одно впечатление от этого урока и уточнить.

1. В коде файла variables.php мы вводим первое условие на проверку включения модуля перенаправления (IRB_REWRITE) и наличия параметров в адресной строке (!empty($_GET['route'])).
Во втором условии мы проверяем всего лишь наличие GET-параметров: elseif(count($_GET)).
Вопрос-уточнение: во втором условии мы могли бы заменить это выражение на выражение из первого условия - !empty($_GET['route'])? Ведь по сути, это одно и то же. Хотя, писать во втором случае нам придется меньше... Но, все-таки?

2. В конце урока вы предлагаете сделать переключатель модулей с помощью функции Switch. Я знаю, что делает эта функция. Но я не могу знать (пройдя лишь два урока) о каких модулях идет речь. Ведь о них не было сказано ни полслова. И даже не был приведен алгоритм переключения. Мне кажется, здесь налицо упущение, недоговоренность в уроке, которую можно было бы устранить.

P.S. Я не читал комментарии, только пробежался глазами.

Спасибо и надеюсь на пояснения.
twin
Цитата
Вопрос-уточнение: во втором условии мы могли бы заменить это выражение на выражение из первого условия - !empty($_GET['route'])? Ведь по сути, это одно и то же. Хотя, писать во втором случае нам придется меньше... Но, все-таки?

Не уловил мысли...
Второе условие - наличие GET параметров. Эта часть отвечает за инициализацию без модуля перенаправления, а значит никакой $_GET['route'] там нет в помине. Есть набор переменных $_GET['page'], $_GET['rem'] и так далее...

Цитата
Но я не могу знать (пройдя лишь два урока) о каких модулях идет речь.

Тут да, увлеклись маленько. Перепишу задание. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
baston
Цитата (twin @ 2.02.2010 - 22:46)
Второе условие - наличие GET параметров. Эта часть отвечает за инициализацию без модуля перенаправления, а значит никакой $_GET['route'] там нет в помине.

Ступил, сознаюсь.
Спасибо.
AmberLEX
Так я и не выяснил, если будет категория в галереи или в статьях, то придется добавить еще один GET-параметр:
/**
* Array of variables for GET-parametres
* Массив переменных для GET-параметров
*/

$GET = array(
'page' => 'main',
'rem' => 'read',
'сid' => 0,
'id' => 0,
'num' => 0,
);
И получается в новостях ссылка типа: _http://irbis/news/read/0/0/1 Т.е. всегда будет присутствовать cid=0, хотя в новостях он не используется.
Это так и будет? Как-то не очень красиво. Или с этим что-то делать будем?

_____________
1. Чудес не бывает.
2. Дерьмо случается.
twin
ЧПУ вообще вещь некрасивая на мой взгляд. Противоестественная и ресурсоемкая.
А сделать можно только одно - пронумеровать их и использовать в порядке поступления. Что бы нули были всегда в конце. Тогда их можно будет обрезать в функции href()
На мой взгляд это лишнее. Кто сейчас на красоту адресной строки смотрит. вон гугл какие выдает - всем плевать.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
ETG
Добрый вечер! Помогите нубу. Не могу понять что значит выражение - $page = !empty($_GET['page'])?$_GET['page']:NULL; первая часть смысл вроде понятен - $page = !empty($_GET['page']) а вот ?$_GET['page']:NULL не ясно что делается. По уроку после получения GET переменной, переходя по ссылкам грузится одна и таже первая страница, хотя переменные передаются в браузер (http://my-site.ru/?mod=main и mod=second). При нажатии на любую ссылку выводится сообщение Жизнь прекрасна! rolleyes.gif файла main.tpl. В чём моя тупость? Спасибо!

PS. swith-case такой же как и в уроке.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.