<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/6312" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Комментарии на: PHP framework CodeIgniter. Авторизация посетителей и ограничение доступа</title>
	<link>http://www.simplecoding.org/user-authorization.html</link>
	<description>Блог о программировании</description>
	<pubDate>Mon, 07 Jul 2008 10:23:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=6312</generator>
		<item>
		<title>От: go</title>
		<link>http://www.simplecoding.org/user-authorization.html#comment-1069</link>
		<dc:creator>go</dc:creator>
		<pubDate>Mon, 09 Jun 2008 15:59:30 +0000</pubDate>
		<guid>http://www.simplecoding.org/user-authorization.html#comment-1069</guid>
		<description>да про добавление в switch это действительно моментик )) 
кстати вот проект сделанный на CI - proday.by 
доска ВИДЕО объявлений
(правда видео пока никто не добавил) =-)
там для видео мы использовали youtube API...
а нашем случае авторизацю вынесли в отдельный контроллер а в основном контроллере в конструкторе делаем простую проверку</description>
		<content:encoded><![CDATA[<p>да про добавление в switch это действительно моментик ))<br />
кстати вот проект сделанный на CI - proday.by<br />
доска ВИДЕО объявлений<br />
(правда видео пока никто не добавил) =-)<br />
там для видео мы использовали youtube API&#8230;<br />
а нашем случае авторизацю вынесли в отдельный контроллер а в основном контроллере в конструкторе делаем простую проверку</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Владимир</title>
		<link>http://www.simplecoding.org/user-authorization.html#comment-1066</link>
		<dc:creator>Владимир</dc:creator>
		<pubDate>Mon, 09 Jun 2008 12:50:24 +0000</pubDate>
		<guid>http://www.simplecoding.org/user-authorization.html#comment-1066</guid>
		<description>Да, вы правильно поняли :-)
Отсечь и уловить - это дополнительный код, а, учитывая, что есть готовая функция, это дублирование кода.
Согласен, обращение классическим способом выглядит лучше.

&gt;&gt; принимает два параметра
Признаю, просмотрел. Код лень было смотреть, ориентировался на доку. Спасибо!

&gt;&gt; запрос на несуществующий метод
Тут ситуация такая, если авторизированный посетитель обратиться к несуществующей странице, то действительно возникнет ошибка (как и при обычной работе фреймворка). А для не авторизированного посетителя в любом случае будет показана главная страница.

&gt;&gt; юзать PHP5
я не против, но почему бы не сделать просто страницу для ошибки 404 с навигацией по сайту?

&gt;&gt; я ведь знаю что нужно моему методу
конечно, знаете, но при добавлении новых методов придется вручную добавлять их в switch</description>
		<content:encoded><![CDATA[<p>Да, вы правильно поняли <img src='http://www.simplecoding.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
Отсечь и уловить - это дополнительный код, а, учитывая, что есть готовая функция, это дублирование кода.<br />
Согласен, обращение классическим способом выглядит лучше.</p>
<p>>> принимает два параметра<br />
Признаю, просмотрел. Код лень было смотреть, ориентировался на доку. Спасибо!</p>
<p>>> запрос на несуществующий метод<br />
Тут ситуация такая, если авторизированный посетитель обратиться к несуществующей странице, то действительно возникнет ошибка (как и при обычной работе фреймворка). А для не авторизированного посетителя в любом случае будет показана главная страница.</p>
<p>>> юзать PHP5<br />
я не против, но почему бы не сделать просто страницу для ошибки 404 с навигацией по сайту?</p>
<p>>> я ведь знаю что нужно моему методу<br />
конечно, знаете, но при добавлении новых методов придется вручную добавлять их в switch</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: go</title>
		<link>http://www.simplecoding.org/user-authorization.html#comment-1063</link>
		<dc:creator>go</dc:creator>
		<pubDate>Mon, 09 Jun 2008 06:37:44 +0000</pubDate>
		<guid>http://www.simplecoding.org/user-authorization.html#comment-1063</guid>
		<description>Если я вас првильно  понимаю то переданный в call_user_func_array массив параметров в метод передадутся уже не в виде массива а так как нужно методу? если так то это действительно удобно соглашусь с вами.
Хоия считаю  что в методе на приеме можно это все отловить и усечь. Просто внешне согласитесь, ну совершенно привычней и логичней был бы обращение к методу классическим способом/

а так вообще то _remap примнимает два параметра
1. название метода 
2. массив параметров
да в доках это не сказано, но зато в исходниках отчетливо видно что именно так и происходит.
&lt;code&gt;
	// Is there a "remap" function?
	if (method_exists($CI, '_remap'))
	{
		$CI-&#62;_remap($method,array_slice($URI-&#62;rsegments, 2));
&lt;/code&gt;

честно говоря я не пойму зачем в выше приведенном коде 5 и 6 строчки (в самом верху страницы)? и главное ведь данный код совершенно ни как не спасает если придет запрос на несуществующий метод )) !!
поэтому придется либо юзать PHP5 ( я за!!! ) и там есть метод _call который сработает в случае если нет такого метода и тогда ваш вариант с call_user_func... как раз подойдет
либо делать все равно switch
ну либо фиксит CI и делать проверку на метод в CodeIgniter.php 

а я делал в своем проекте 
_remap и большой switch и вызывал в case'ах $this-&#62;$method($args[0]), к примеру,
 я ведь знаю что нужно моему методу )) в смысле какие параметры</description>
		<content:encoded><![CDATA[<p>Если я вас првильно  понимаю то переданный в call_user_func_array массив параметров в метод передадутся уже не в виде массива а так как нужно методу? если так то это действительно удобно соглашусь с вами.<br />
Хоия считаю  что в методе на приеме можно это все отловить и усечь. Просто внешне согласитесь, ну совершенно привычней и логичней был бы обращение к методу классическим способом/</p>
<p>а так вообще то _remap примнимает два параметра<br />
1. название метода<br />
2. массив параметров<br />
да в доках это не сказано, но зато в исходниках отчетливо видно что именно так и происходит.<br />
<code><br />
	// Is there a "remap" function?<br />
	if (method_exists($CI, '_remap'))<br />
	{<br />
		$CI-&gt;_remap($method,array_slice($URI-&gt;rsegments, 2));<br />
</code></p>
<p>честно говоря я не пойму зачем в выше приведенном коде 5 и 6 строчки (в самом верху страницы)? и главное ведь данный код совершенно ни как не спасает если придет запрос на несуществующий метод )) !!<br />
поэтому придется либо юзать PHP5 ( я за!!! ) и там есть метод _call который сработает в случае если нет такого метода и тогда ваш вариант с call_user_func&#8230; как раз подойдет<br />
либо делать все равно switch<br />
ну либо фиксит CI и делать проверку на метод в CodeIgniter.php </p>
<p>а я делал в своем проекте<br />
_remap и большой switch и вызывал в case&#8217;ах $this-&gt;$method($args[0]), к примеру,<br />
 я ведь знаю что нужно моему методу )) в смысле какие параметры</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Владимир</title>
		<link>http://www.simplecoding.org/user-authorization.html#comment-1059</link>
		<dc:creator>Владимир</dc:creator>
		<pubDate>Sun, 08 Jun 2008 17:49:23 +0000</pubDate>
		<guid>http://www.simplecoding.org/user-authorization.html#comment-1059</guid>
		<description>Почему откоряка?
Может памяти и больше потребляется, но и количество кода сокращается. CI позволяет получить параметры в виде массива. Если использовать $this-&#62;$method($pars), то сначала придется проверить сколько параметров нужно передать и написать что-то вроде:
&lt;code&gt;switch ($count) {
   case 1: $this-&#62;$method($pars[0]);
   case 2: $this-&#62;$method($pars[0], $pars[1]);
   ...
}&lt;/code&gt;
И заодно проверить сколько параметров принимает данный метод.
Вобщем сделать все то, что скорее всего делает метод call_user_func_array.</description>
		<content:encoded><![CDATA[<p>Почему откоряка?<br />
Может памяти и больше потребляется, но и количество кода сокращается. CI позволяет получить параметры в виде массива. Если использовать $this-&gt;$method($pars), то сначала придется проверить сколько параметров нужно передать и написать что-то вроде:<br />
<code>switch ($count) {<br />
   case 1: $this-&gt;$method($pars[0]);<br />
   case 2: $this-&gt;$method($pars[0], $pars[1]);<br />
   ...<br />
}</code><br />
И заодно проверить сколько параметров принимает данный метод.<br />
Вобщем сделать все то, что скорее всего делает метод call_user_func_array.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: go</title>
		<link>http://www.simplecoding.org/user-authorization.html#comment-1058</link>
		<dc:creator>go</dc:creator>
		<pubDate>Sun, 08 Jun 2008 17:11:42 +0000</pubDate>
		<guid>http://www.simplecoding.org/user-authorization.html#comment-1058</guid>
		<description>Владмир, а вам не кажется что это откоряка? чистой воды...
во-первых указанный мною способ визуально логичнее для восприятия, а во-вторых вместо одного вызова вы делаете два! т.е. вначале вызов call_.... а потом эта функция наверняка делает вызов нужного метода... в результате вы используете больше памяти (не намного но больше).</description>
		<content:encoded><![CDATA[<p>Владмир, а вам не кажется что это откоряка? чистой воды&#8230;<br />
во-первых указанный мною способ визуально логичнее для восприятия, а во-вторых вместо одного вызова вы делаете два! т.е. вначале вызов call_&#8230;. а потом эта функция наверняка делает вызов нужного метода&#8230; в результате вы используете больше памяти (не намного но больше).</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Владимир</title>
		<link>http://www.simplecoding.org/user-authorization.html#comment-1049</link>
		<dc:creator>Владимир</dc:creator>
		<pubDate>Sat, 07 Jun 2008 10:34:06 +0000</pubDate>
		<guid>http://www.simplecoding.org/user-authorization.html#comment-1049</guid>
		<description>Для $this-&gt;$method($pars) нужно перечислить параметры метода как при обычном вызове, а call_user_func_array принимает &lt;strong&gt;массив&lt;/strong&gt; с параметрами. Это удобнее если методы принимают разное количество параметров.</description>
		<content:encoded><![CDATA[<p>Для $this->$method($pars) нужно перечислить параметры метода как при обычном вызове, а call_user_func_array принимает <strong>массив</strong> с параметрами. Это удобнее если методы принимают разное количество параметров.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: go</title>
		<link>http://www.simplecoding.org/user-authorization.html#comment-1047</link>
		<dc:creator>go</dc:creator>
		<pubDate>Sat, 07 Jun 2008 06:46:56 +0000</pubDate>
		<guid>http://www.simplecoding.org/user-authorization.html#comment-1047</guid>
		<description>а почему 
 call_user_func_array(array($this, $method), $pars);
в упор не пойму!
чем это отличается от 
$this-&#62;$method($pars);
и красивее  и короче да и логичнее, вообше не пойму зачем CI делает так же у себя в ядре, передавая управлени юзерскому приложению в codeigniter.php, там тоже есть такой способ, может кто нить объяснит зачем использовать ф-цию в замен стандаартного способа?</description>
		<content:encoded><![CDATA[<p>а почему<br />
 call_user_func_array(array($this, $method), $pars);<br />
в упор не пойму!<br />
чем это отличается от<br />
$this-&gt;$method($pars);<br />
и красивее  и короче да и логичнее, вообше не пойму зачем CI делает так же у себя в ядре, передавая управлени юзерскому приложению в codeigniter.php, там тоже есть такой способ, может кто нить объяснит зачем использовать ф-цию в замен стандаартного способа?</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Владимир</title>
		<link>http://www.simplecoding.org/user-authorization.html#comment-797</link>
		<dc:creator>Владимир</dc:creator>
		<pubDate>Fri, 23 May 2008 16:27:09 +0000</pubDate>
		<guid>http://www.simplecoding.org/user-authorization.html#comment-797</guid>
		<description>Чтобы сделать авторизацию на сайте с несколькими описанным методом достаточно скопировать метод _remap в конструктор каждого контроллера.
Как правильно заметил Sam это не очень красивое решение, но оно работает.

Еще советую попробовать библиотеки авторизации. Ссылки есть в статье и комментариях, кроме того mihailt была статья о подключении Zend_acl к CI.</description>
		<content:encoded><![CDATA[<p>Чтобы сделать авторизацию на сайте с несколькими описанным методом достаточно скопировать метод _remap в конструктор каждого контроллера.<br />
Как правильно заметил Sam это не очень красивое решение, но оно работает.</p>
<p>Еще советую попробовать библиотеки авторизации. Ссылки есть в статье и комментариях, кроме того mihailt была статья о подключении Zend_acl к CI.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Lester</title>
		<link>http://www.simplecoding.org/user-authorization.html#comment-788</link>
		<dc:creator>Lester</dc:creator>
		<pubDate>Thu, 22 May 2008 22:32:38 +0000</pubDate>
		<guid>http://www.simplecoding.org/user-authorization.html#comment-788</guid>
		<description>&#62;Важно. Если ваш сайт содержит несколько
&#62;контроллеров, то метод _remap должен быть объявлен
&#62;в каждом из них.
Сайт с одним контролером - это слишком примитивно, куда более интереснее было бы описать как организовать авторизацию на сайте с несколькими контроллерами. Я так мыслю, в этом случае надо задействовать хуки или расширять базовый контроллер. Только начинаю разбираться с CI, поэтому конкретных примеров привести пока не могу, если кто реализовывал такую авторизацию, поделитесь мыслями, примерами.</description>
		<content:encoded><![CDATA[<p>&gt;Важно. Если ваш сайт содержит несколько<br />
&gt;контроллеров, то метод _remap должен быть объявлен<br />
&gt;в каждом из них.<br />
Сайт с одним контролером - это слишком примитивно, куда более интереснее было бы описать как организовать авторизацию на сайте с несколькими контроллерами. Я так мыслю, в этом случае надо задействовать хуки или расширять базовый контроллер. Только начинаю разбираться с CI, поэтому конкретных примеров привести пока не могу, если кто реализовывал такую авторизацию, поделитесь мыслями, примерами.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Владимир</title>
		<link>http://www.simplecoding.org/user-authorization.html#comment-478</link>
		<dc:creator>Владимир</dc:creator>
		<pubDate>Mon, 03 Mar 2008 18:26:41 +0000</pubDate>
		<guid>http://www.simplecoding.org/user-authorization.html#comment-478</guid>
		<description>Честно говоря, вопрос поставил меня в тупик.

Если я правильно понял, нужно прикрутить сайт (web службу) к форуму или наоборот. При этом если посетитель авторизировался на сайте, он должен автоматически авторизироваться на форуме.

Мне кажется, что для решения этой задачи придется "плясать" от системы авторизации форума. Т.е. использовать общую таблицу пользователей, посмотреть какие параметры должны быть сохранены в сессии и т.п.

Готовые решения может и существуют, но я с ними не сталкивался.</description>
		<content:encoded><![CDATA[<p>Честно говоря, вопрос поставил меня в тупик.</p>
<p>Если я правильно понял, нужно прикрутить сайт (web службу) к форуму или наоборот. При этом если посетитель авторизировался на сайте, он должен автоматически авторизироваться на форуме.</p>
<p>Мне кажется, что для решения этой задачи придется &#8220;плясать&#8221; от системы авторизации форума. Т.е. использовать общую таблицу пользователей, посмотреть какие параметры должны быть сохранены в сессии и т.п.</p>
<p>Готовые решения может и существуют, но я с ними не сталкивался.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
