<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Комментарии на: Обработка данных с помощью Zend_Filter_Input</title>
	<atom:link href="http://zend-framework.ru/zend_filter_input-validation/feed/" rel="self" type="application/rss+xml" />
	<link>http://zend-framework.ru/zend_filter_input-validation/</link>
	<description>Статьи, руководства и заметки о фреймворке для PHP - Zend Framework</description>
	<lastBuildDate>Tue, 31 Jan 2012 11:29:45 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>От: Сергей Митрошин</title>
		<link>http://zend-framework.ru/zend_filter_input-validation/comment-page-1/#comment-1028</link>
		<dc:creator>Сергей Митрошин</dc:creator>
		<pubDate>Wed, 02 Feb 2011 10:10:37 +0000</pubDate>
		<guid isPermaLink="false">http://zend-framework.ru/?p=134#comment-1028</guid>
		<description>Спасибо Юра, исправил.</description>
		<content:encoded><![CDATA[<p>Спасибо Юра, исправил.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: юра</title>
		<link>http://zend-framework.ru/zend_filter_input-validation/comment-page-1/#comment-1027</link>
		<dc:creator>юра</dc:creator>
		<pubDate>Wed, 02 Feb 2011 10:07:25 +0000</pubDate>
		<guid isPermaLink="false">http://zend-framework.ru/?p=134#comment-1027</guid>
		<description>Поправьте &quot;new Zend_Fiter_Input&quot; на &quot;new Zend_Filter_Input&quot; !</description>
		<content:encoded><![CDATA[<p>Поправьте &#8220;new Zend_Fiter_Input&#8221; на &#8220;new Zend_Filter_Input&#8221; !</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: excalibur</title>
		<link>http://zend-framework.ru/zend_filter_input-validation/comment-page-1/#comment-938</link>
		<dc:creator>excalibur</dc:creator>
		<pubDate>Sun, 10 Oct 2010 06:24:43 +0000</pubDate>
		<guid isPermaLink="false">http://zend-framework.ru/?p=134#comment-938</guid>
		<description>Если как escapeFilter Вы используете StringTrim (а это как раз подходит, например для формы комментирование, где используется визуальный редактор и должен сохраняться html-код в базу данных), то какой фильтр Вы используете чтобы экранировать кавычки? Ими занимается как раз Zend_Filter_HtmlEntities, но его использование неудобно для случая, который я описал выше. Если я что-то упустил - буду признателен за совет.</description>
		<content:encoded><![CDATA[<p>Если как escapeFilter Вы используете StringTrim (а это как раз подходит, например для формы комментирование, где используется визуальный редактор и должен сохраняться html-код в базу данных), то какой фильтр Вы используете чтобы экранировать кавычки? Ими занимается как раз Zend_Filter_HtmlEntities, но его использование неудобно для случая, который я описал выше. Если я что-то упустил &#8211; буду признателен за совет.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Lyuba</title>
		<link>http://zend-framework.ru/zend_filter_input-validation/comment-page-1/#comment-697</link>
		<dc:creator>Lyuba</dc:creator>
		<pubDate>Mon, 21 Dec 2009 11:01:55 +0000</pubDate>
		<guid isPermaLink="false">http://zend-framework.ru/?p=134#comment-697</guid>
		<description>Помогите мне пожалуйста!!!!!!!!!!! Мне нужно как-то поменять кодировку в zend studio for eclipse 6.1.0 а то у меня русские слова отображаются непонятными символами.</description>
		<content:encoded><![CDATA[<p>Помогите мне пожалуйста!!!!!!!!!!! Мне нужно как-то поменять кодировку в zend studio for eclipse 6.1.0 а то у меня русские слова отображаются непонятными символами.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: andrey</title>
		<link>http://zend-framework.ru/zend_filter_input-validation/comment-page-1/#comment-693</link>
		<dc:creator>andrey</dc:creator>
		<pubDate>Fri, 04 Dec 2009 12:40:29 +0000</pubDate>
		<guid isPermaLink="false">http://zend-framework.ru/?p=134#comment-693</guid>
		<description>короче id для id капчи и input для введённого значения</description>
		<content:encoded><![CDATA[<p>короче id для id капчи и input для введённого значения</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: andrey</title>
		<link>http://zend-framework.ru/zend_filter_input-validation/comment-page-1/#comment-692</link>
		<dc:creator>andrey</dc:creator>
		<pubDate>Fri, 04 Dec 2009 12:39:33 +0000</pubDate>
		<guid isPermaLink="false">http://zend-framework.ru/?p=134#comment-692</guid>
		<description>что-то теги режутся

работает если поля имеют имя



а в фильтре
Zend_Filter_Input::FIELDS =&gt; array(’id’,&#039;input’))
если поменять на другие – не работает</description>
		<content:encoded><![CDATA[<p>что-то теги режутся</p>
<p>работает если поля имеют имя</p>
<p>а в фильтре<br />
Zend_Filter_Input::FIELDS =&gt; array(’id’,&#8217;input’))<br />
если поменять на другие – не работает</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: andrey</title>
		<link>http://zend-framework.ru/zend_filter_input-validation/comment-page-1/#comment-691</link>
		<dc:creator>andrey</dc:creator>
		<pubDate>Fri, 04 Dec 2009 12:38:31 +0000</pubDate>
		<guid isPermaLink="false">http://zend-framework.ru/?p=134#comment-691</guid>
		<description>работает если поля имеют имя



а в фильтре
Zend_Filter_Input::FIELDS =&gt; array(’id’,&#039;input’))
если поменять на другие – не работает</description>
		<content:encoded><![CDATA[<p>работает если поля имеют имя</p>
<p>а в фильтре<br />
Zend_Filter_Input::FIELDS =&gt; array(’id’,&#8217;input’))<br />
если поменять на другие – не работает</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: andrey</title>
		<link>http://zend-framework.ru/zend_filter_input-validation/comment-page-1/#comment-690</link>
		<dc:creator>andrey</dc:creator>
		<pubDate>Fri, 04 Dec 2009 12:37:56 +0000</pubDate>
		<guid isPermaLink="false">http://zend-framework.ru/?p=134#comment-690</guid>
		<description>работает если поля имеют имя 
&lt;input type=&quot;hidden&quot; name=&quot;id&quot; value=&quot;&quot;/&gt;


а в фильтре
Zend_Filter_Input::FIELDS =&gt; array(&#039;id&#039;,&#039;input&#039;))
если поменять на другие - не работает</description>
		<content:encoded><![CDATA[<p>работает если поля имеют имя<br />
&lt;input type=&quot;hidden&quot; name=&quot;id&quot; value=&quot;&#8221;/&gt;</p>
<p>а в фильтре<br />
Zend_Filter_Input::FIELDS =&gt; array(&#8216;id&#8217;,'input&#8217;))<br />
если поменять на другие &#8211; не работает</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: andrey</title>
		<link>http://zend-framework.ru/zend_filter_input-validation/comment-page-1/#comment-689</link>
		<dc:creator>andrey</dc:creator>
		<pubDate>Fri, 04 Dec 2009 12:15:15 +0000</pubDate>
		<guid isPermaLink="false">http://zend-framework.ru/?p=134#comment-689</guid>
		<description>Добрый день. Можно подробнее про Zend_Filter_Input и Zend_Captcha.
У меня в html-файле(форма)
 &#039;captcha&#039;,
					&#039;wordLen&#039; =&gt; 6,
					&#039;timeout&#039; =&gt; 300,
				));
			$captcha-&gt;setFont(&#039;../library/Fonts/tahoma.ttf&#039;);
			$id = $captcha-&gt;generate();
			?&gt;
			render($this);?&gt;
Enter code *: 

&lt;input type=&quot;hidden&quot; name=&quot;captcha[id]&quot; value=&quot;&quot;/&gt;




в акшине

		if($request = $this-&gt;getRequest()-&gt;isPost()) {
			$captcha = new Zend_Captcha_Image(array(
					&#039;name&#039; =&gt; &#039;captcha-image&#039;,
					&#039;wordLen&#039; =&gt; 6,
					&#039;timeout&#039; =&gt; 300,
				));
			$captcha-&gt;setFont(&#039;../library/Fonts/tahoma.ttf&#039;);

		
			$filters = array();
			$validators = array(
//				&#039;name&#039; =&gt; array(
//				&#039;Alpha&#039;,  // Zend_Validate_Alpha
//				array(&#039;StringLength&#039;, 3, 20), // Zend_Validate_StringLength
//				&#039;presence&#039;=&gt;&#039;required&#039;  // обязательный параметр
//				),
//				&#039;phone&#039; =&gt; array(
//				&#039;Alpha&#039;,
//				array(&#039;stringLength&#039;, 6, 15)
//				),
//				&#039;email&#039; =&gt; array(
//				&#039;EmailAddress&#039;,
//				&#039;presence&#039;=&gt;&#039;required&#039;),  //обязательный параметр
				&#039;captcha&#039; =&gt; array(
				$captcha, // метод создает и настраивает класс капчи
				Zend_Filter_Input::FIELDS =&gt; array(&#039;captcha&#039;,&#039;&#039;))
								
				
			);
			$options = array(&#039;escapeFilter&#039; =&gt; &#039;StringTrim&#039;);

			$input = new Zend_Filter_Input($filters, $validators, $_POST, $options);

			if ($input-&gt;isValid()) {
				$this-&gt;view-&gt;successMessages = &quot;Thank you!&quot;;
			} else {
                                $this-&gt;view-&gt;errorMessages = $input-&gt;getMessages();
				$this-&gt;view-&gt;params = $_POST;
}
}

Cообщение об ошибке Empty captcha value
хотя  выдаст 
[captcha] =&gt; Array ( [id] =&gt; a7ff8d38f7542ebaba39f0887f7f1d07 [input] =&gt; fghfd</description>
		<content:encoded><![CDATA[<p>Добрый день. Можно подробнее про Zend_Filter_Input и Zend_Captcha.<br />
У меня в html-файле(форма)<br />
 &#8216;captcha&#8217;,<br />
					&#8216;wordLen&#8217; =&gt; 6,<br />
					&#8216;timeout&#8217; =&gt; 300,<br />
				));<br />
			$captcha-&gt;setFont(&#8216;../library/Fonts/tahoma.ttf&#8217;);<br />
			$id = $captcha-&gt;generate();<br />
			?&gt;<br />
			render($this);?&gt;<br />
Enter code *: </p>
<p>&lt;input type=&quot;hidden&quot; name=&quot;captcha[id]&quot; value=&quot;&#8221;/&gt;</p>
<p>в акшине</p>
<p>		if($request = $this-&gt;getRequest()-&gt;isPost()) {<br />
			$captcha = new Zend_Captcha_Image(array(<br />
					&#8216;name&#8217; =&gt; &#8216;captcha-image&#8217;,<br />
					&#8216;wordLen&#8217; =&gt; 6,<br />
					&#8216;timeout&#8217; =&gt; 300,<br />
				));<br />
			$captcha-&gt;setFont(&#8216;../library/Fonts/tahoma.ttf&#8217;);</p>
<p>			$filters = array();<br />
			$validators = array(<br />
//				&#8216;name&#8217; =&gt; array(<br />
//				&#8216;Alpha&#8217;,  // Zend_Validate_Alpha<br />
//				array(&#8216;StringLength&#8217;, 3, 20), // Zend_Validate_StringLength<br />
//				&#8216;presence&#8217;=&gt;&#8217;required&#8217;  // обязательный параметр<br />
//				),<br />
//				&#8216;phone&#8217; =&gt; array(<br />
//				&#8216;Alpha&#8217;,<br />
//				array(&#8216;stringLength&#8217;, 6, 15)<br />
//				),<br />
//				&#8216;email&#8217; =&gt; array(<br />
//				&#8216;EmailAddress&#8217;,<br />
//				&#8216;presence&#8217;=&gt;&#8217;required&#8217;),  //обязательный параметр<br />
				&#8216;captcha&#8217; =&gt; array(<br />
				$captcha, // метод создает и настраивает класс капчи<br />
				Zend_Filter_Input::FIELDS =&gt; array(&#8216;captcha&#8217;,&#8221;))</p>
<p>			);<br />
			$options = array(&#8216;escapeFilter&#8217; =&gt; &#8216;StringTrim&#8217;);</p>
<p>			$input = new Zend_Filter_Input($filters, $validators, $_POST, $options);</p>
<p>			if ($input-&gt;isValid()) {<br />
				$this-&gt;view-&gt;successMessages = &#8220;Thank you!&#8221;;<br />
			} else {<br />
                                $this-&gt;view-&gt;errorMessages = $input-&gt;getMessages();<br />
				$this-&gt;view-&gt;params = $_POST;<br />
}<br />
}</p>
<p>Cообщение об ошибке Empty captcha value<br />
хотя  выдаст<br />
[captcha] =&gt; Array ( [id] =&gt; a7ff8d38f7542ebaba39f0887f7f1d07 [input] =&gt; fghfd</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Юрий Истомин</title>
		<link>http://zend-framework.ru/zend_filter_input-validation/comment-page-1/#comment-618</link>
		<dc:creator>Юрий Истомин</dc:creator>
		<pubDate>Wed, 26 Aug 2009 20:34:52 +0000</pubDate>
		<guid isPermaLink="false">http://zend-framework.ru/?p=134#comment-618</guid>
		<description>В ZF 1.9 немного поменялась валидация в Zend_Filter_Input - теперь проверка на пустое значение производится автоматически: если для правила указано Zend_Filter_Input::ALLOW_EMPTY =&gt; false, то Zend_Validate_NotEmpty добавляется в цепочку валидаторов, а если Zend_Filter_Input::ALLOW_EMPTY =&gt; true и проверка Zend_Validate_NotEmpty дает false (то есть поле пустое), валидация поля на этом заканчивается.
Проблема, собственно, в том, что для конкретного поля нельзя задать персональное сообщение о том, что поле надо заполнять - можно только указать общую для всех опцию Zend_Filter_Input::NOT_EMPTY_MESSAGE =&gt; &#039;Поле &quot;%rule%&quot; обязательно для заполнения&#039;. Для того, чтобы можно было задать более грамотное сообщение, я сделал дочерний класс:

class My_FilterInput extends Zend_Filter_Input
{
    protected function _getNotEmptyMessage($rule, $field)
    {
        if (isset($this-&gt;_validatorRules[$rule][Zend_Filter_Input::NOT_EMPTY_MESSAGE])) {
            return $this-&gt;_validatorRules[$rule][Zend_Filter_Input::NOT_EMPTY_MESSAGE];
        } else {
            return parent::_getNotEmptyMessage($rule, $field);
        }
    }
}

И теперь можно задать для конкретного правила конкретное сообщение:

&#039;comment&#039; =&gt; array(
    Zend_Filter_Input::NOT_EMPTY_MESSAGE =&gt; &#039;Введите текст комментария&#039;,
    Zend_Filter_Input::ALLOW_EMPTY =&gt; false,
),
&#039;email&#039; =&gt; array(
    new Zend_Validate_EmailAddress(),
    Zend_Filter_Input::MESSAGES =&gt; array(
        array(Zend_Validate_EmailAddress::INVALID_FORMAT =&gt; &#039;Введите корректный e-mail адрес&#039;),
    ),
    Zend_Filter_Input::ALLOW_EMPTY =&gt; false,
    Zend_Filter_Input::NOT_EMPTY_MESSAGE =&gt; &#039;Укажите e-mail&#039;,
)</description>
		<content:encoded><![CDATA[<p>В ZF 1.9 немного поменялась валидация в Zend_Filter_Input &#8211; теперь проверка на пустое значение производится автоматически: если для правила указано Zend_Filter_Input::ALLOW_EMPTY =&gt; false, то Zend_Validate_NotEmpty добавляется в цепочку валидаторов, а если Zend_Filter_Input::ALLOW_EMPTY =&gt; true и проверка Zend_Validate_NotEmpty дает false (то есть поле пустое), валидация поля на этом заканчивается.<br />
Проблема, собственно, в том, что для конкретного поля нельзя задать персональное сообщение о том, что поле надо заполнять &#8211; можно только указать общую для всех опцию Zend_Filter_Input::NOT_EMPTY_MESSAGE =&gt; &#8216;Поле &#8220;%rule%&#8221; обязательно для заполнения&#8217;. Для того, чтобы можно было задать более грамотное сообщение, я сделал дочерний класс:</p>
<p>class My_FilterInput extends Zend_Filter_Input<br />
{<br />
    protected function _getNotEmptyMessage($rule, $field)<br />
    {<br />
        if (isset($this-&gt;_validatorRules[$rule][Zend_Filter_Input::NOT_EMPTY_MESSAGE])) {<br />
            return $this-&gt;_validatorRules[$rule][Zend_Filter_Input::NOT_EMPTY_MESSAGE];<br />
        } else {<br />
            return parent::_getNotEmptyMessage($rule, $field);<br />
        }<br />
    }<br />
}</p>
<p>И теперь можно задать для конкретного правила конкретное сообщение:</p>
<p>&#8216;comment&#8217; =&gt; array(<br />
    Zend_Filter_Input::NOT_EMPTY_MESSAGE =&gt; &#8216;Введите текст комментария&#8217;,<br />
    Zend_Filter_Input::ALLOW_EMPTY =&gt; false,<br />
),<br />
&#8216;email&#8217; =&gt; array(<br />
    new Zend_Validate_EmailAddress(),<br />
    Zend_Filter_Input::MESSAGES =&gt; array(<br />
        array(Zend_Validate_EmailAddress::INVALID_FORMAT =&gt; &#8216;Введите корректный e-mail адрес&#8217;),<br />
    ),<br />
    Zend_Filter_Input::ALLOW_EMPTY =&gt; false,<br />
    Zend_Filter_Input::NOT_EMPTY_MESSAGE =&gt; &#8216;Укажите e-mail&#8217;,<br />
)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

