Создаю свой компонент, где ведется поиск информации в базе данных во временном интервале (от одной даты до другой) использую следующий код: Код (PHP): JHTML::_('behavior.calendar'); $fromdate = JRequest::getVar('fromdate', date("Y-m-d")); $todate = JRequest::getVar('todate', date("Y-m-d")); echo '<form action="index.php?option=com_mycomp" method="post" name="SetDate">'; echo 'Установите интервал между датами с '; echo JHTML::_('calendar', $fromdate, 'fromdate', 'fromdate', '%Y-%m-%d', array('class'=>'inputbox', 'size'=>'20', 'maxlength'=>'19')); echo ' по '.JHTML::_('calendar', $todate, 'todate', 'todate', '%Y-%m-%d', array('class'=>'inputbox', 'size'=>'20', 'maxlength'=>'19')); echo ' <input type="button" value="Установить" class="diary-button" onclick="form.submit()" />'; echo '</form>'; echo '<p>Выбранный интервал проссмотра данных с <span class="cm_date_head">'.JHTML::_('date', $fromdate, JText::_('%d %B %Y')).'</span> по <span class="cm_date_head">'.JHTML::_('date', $todate, JText::_('%d %B %Y')).'</span></p>'; но получилось так, что пользователи могут писать в поле INPUT, которое само формируется посредствами джумлы, все, что угодно. Временно добавил в array параметр 'readonly'=>'readonly': Код (PHP): JHTML::_('calendar', $fromdate, 'fromdate', 'fromdate', '%Y-%m-%d', array('class'=>'inputbox', 'size'=>'20', 'maxlength'=>'19', 'readonly'=>'readonly')) Появилось несколько вопросов: 1) Как сделать так, чтобы в поле INPUT нельзя было ничего вводить, кроме цифр? 2) Как полностью обезопасить поле INPUT от всяких sql-инъекций и т.п.? 3) Как сделать так, чтобы в поле INPUT отображалась дата в формате "21 февраля 2010", а переменной $fromdate присваивалось значение "2010-02-21"? Мне приходится отдельно выводить ниже значение переменной в красивом формате так: Код (PHP): JHTML::_('date', $fromdate, JText::_('%d %B %Y')) Проблема в том, что когда пишу изначально Код (PHP): JHTML::_('calendar', $fromdate, 'fromdate', 'fromdate', '%d %B %Y', array('class'=>'inputbox', 'size'=>'20', 'maxlength'=>'19')) , то и в переменную $fromdate записывается дата типа "21 февраля 2010", что не дает мне ее использовать по назначению в поиске в базе данных, т.к. там формат даты "2010-02-21". Я бы конечно мог разбить дату на составляющие, перевести "февраль" в цифру "2" и поменять все местами, но боюсь этого делать, т.к. думаю, что есть проще какой-нить вариант... Помогите пожалуйста разобраться с этими тремя вопросами!
Да, я еще покапался в админке, там где статья добавляется, ей дата присваивается и нашел интересный код: Код (PHP): $config =& JFactory::getConfig(); $publish_up =& JFactory::getDate($this->article->publish_up); $publish_up->setOffset($config->getValue('config.offset')); $publish_up = $publish_up->toFormat(); сам не знаю, что она означает, но переменная $publish_up именно хранит дату создания. Может это и есть какая-нить проверка на взлом?!
для работы с ДОМ-элементами пхп, как бы сказать, не очень подходит ) Рекомендую взглянуть в сторону JS , а точнее тут.