SlideShare a Scribd company logo
1 of 16
Download to read offline
MetaForm:  неизбыточная работа с метаданными  HTML- форм Метаданные формы, защита от подделки, валидация Дмитрий Котеров, архитектор и главный разработчик  MoiKrug.ru  компания Яндекс [email_address]
Что такое метаданные?   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Фамилия:  <input type=&quot;text&quot; name=&quot;lastname&quot; /> Пол:  <input type=&quot;radio&quot; name=&quot;gender&quot; value=&quot;m&quot; />  Муж <input type=&quot;radio&quot; name=&quot;gender&quot; value=&quot;f&quot; />  Жен
Типы полей с точки зрения метаданных ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Web-  или  G UI- приложение   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Рисовальщик формы Пользователь GUI- приложение: форма + обработчики событий Пользователь HTML POST errors Обработчик формы
&quot;Размазанность&quot; :  неявные зависимости от метаданных ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Централизация метаданных ,[object Object],[object Object],HTML +  JS Рисовальщик + обработчик  +  валидатор Metadata HTML + Metadata ,[object Object],[object Object],[object Object],Рисовальщик +   модификатор + обработчик  +  валидатор БД БД
MetaForm:  шаблон + метаданные ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<label for=&quot;l&quot;> Фамилия </label> :  <input type=&quot;text&quot;    name=&quot;lastname&quot;    id=&quot;l&quot;    meta:dbfield=&quot;p_lastname&quot;   meta:validator=&quot;filled&quot;  /> Пол: <label for=&quot;m&quot;> Муж </label> <input type=&quot;radio&quot;    name=&quot;gender&quot;    value=&quot;m&quot;    id=&quot;m&quot;    meta:dbfield=&quot;p_gender&quot; /> <label for=&quot;f&quot;> Жен </label> <input type=&quot;radio&quot;    name=&quot;gender&quot;    value=&quot;f&quot;    id=&quot;f&quot;/>
MetaForm : традиционная обработка ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],switch ($m->process()) {   //  Простой показ формы.   case  &quot;INIT&quot; :   $_POST = < достать из БД >;   break;   //  Нажата кнопка.   case  &quot; имя_кнопки &quot; :   $meta = $m->getMetadata();   < записать в БД >;   < запомнить сообщ. успеха >;   < редирект на себя >;   break;     //  Произошла ошибка валидации } < показать ошибки и сообщения >; < заполнить поля из  $_POST>; < подготовить метаданные >; < отрисовать форму >;
MetaForm : событийная обработка ,[object Object],[object Object],//  Контроллер  Page class Page {   function init() {   //  Простой показ формы.   $_POST = < достать из БД >;   }   function  имя_кнопки()  {   //  Нажата кнопка.   $meta = $m->getMetadata();   < записать в БД >;   < запомнить сообщ. успеха >;   < редирект на себя >;   } } <!--  Шаблон  Page --> < показать ошибки и сообщения >; < заполнить поля из  $_POST>; < подготовить метаданные >; < показать форму >;
Цифровая подпись метаданных ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Защита от подделки форм ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Защита: &quot;лишние&quot; поля формы ,[object Object],[object Object],[object Object],[object Object],[object Object]
Неизбыточная валидация ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Привязка сообщений об ошибках ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Резюме ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Приходите к нам работать! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ждем Ваши резюме на  http://moikrug.ru/hire/

More Related Content

Viewers also liked

Measuring The Immeasurable - Visitor Engagement
Measuring The Immeasurable - Visitor EngagementMeasuring The Immeasurable - Visitor Engagement
Measuring The Immeasurable - Visitor EngagementLeonardo Naressi
 
Local, city democracy changing in the digital era. By Tomasz Nadolny. #RockitWAW
Local, city democracy changing in the digital era. By Tomasz Nadolny. #RockitWAWLocal, city democracy changing in the digital era. By Tomasz Nadolny. #RockitWAW
Local, city democracy changing in the digital era. By Tomasz Nadolny. #RockitWAWDigiComNet
 
Observing the-everyday jay.doc (6)
Observing the-everyday jay.doc (6)Observing the-everyday jay.doc (6)
Observing the-everyday jay.doc (6)Schani B
 
Uce filosofia janeth andrade
Uce filosofia janeth andradeUce filosofia janeth andrade
Uce filosofia janeth andradebruj5
 
KFIE Innovator Bios
KFIE Innovator BiosKFIE Innovator Bios
KFIE Innovator BiosGiselle Aris
 
5 ways to increase sales effectiveness
5 ways to increase sales effectiveness5 ways to increase sales effectiveness
5 ways to increase sales effectivenessJeff Cortez
 
Uce filosofia janeth andrade
Uce filosofia janeth andradeUce filosofia janeth andrade
Uce filosofia janeth andradebruj5
 
Apresentacao Comite de Metricas IAB - Maio/2012
Apresentacao Comite de Metricas IAB - Maio/2012Apresentacao Comite de Metricas IAB - Maio/2012
Apresentacao Comite de Metricas IAB - Maio/2012Leonardo Naressi
 
December 2016 bio gas+ newsletter
December 2016 bio gas+ newsletterDecember 2016 bio gas+ newsletter
December 2016 bio gas+ newsletterPrivate Consultants
 
Passeioda8seriefazzendaparkhotel
Passeioda8seriefazzendaparkhotelPasseioda8seriefazzendaparkhotel
Passeioda8seriefazzendaparkhotelmidiasvidal
 
City Tours Celendin
City  Tours  CelendinCity  Tours  Celendin
City Tours Celendinj_aspillaga
 

Viewers also liked (14)

A Vendinha Da Esquina
A Vendinha Da EsquinaA Vendinha Da Esquina
A Vendinha Da Esquina
 
Measuring The Immeasurable - Visitor Engagement
Measuring The Immeasurable - Visitor EngagementMeasuring The Immeasurable - Visitor Engagement
Measuring The Immeasurable - Visitor Engagement
 
Local, city democracy changing in the digital era. By Tomasz Nadolny. #RockitWAW
Local, city democracy changing in the digital era. By Tomasz Nadolny. #RockitWAWLocal, city democracy changing in the digital era. By Tomasz Nadolny. #RockitWAW
Local, city democracy changing in the digital era. By Tomasz Nadolny. #RockitWAW
 
Storytelling with Shapes
Storytelling with ShapesStorytelling with Shapes
Storytelling with Shapes
 
Observing the-everyday jay.doc (6)
Observing the-everyday jay.doc (6)Observing the-everyday jay.doc (6)
Observing the-everyday jay.doc (6)
 
Uce filosofia janeth andrade
Uce filosofia janeth andradeUce filosofia janeth andrade
Uce filosofia janeth andrade
 
KFIE Innovator Bios
KFIE Innovator BiosKFIE Innovator Bios
KFIE Innovator Bios
 
5 ways to increase sales effectiveness
5 ways to increase sales effectiveness5 ways to increase sales effectiveness
5 ways to increase sales effectiveness
 
Uce filosofia janeth andrade
Uce filosofia janeth andradeUce filosofia janeth andrade
Uce filosofia janeth andrade
 
Apresentacao Comite de Metricas IAB - Maio/2012
Apresentacao Comite de Metricas IAB - Maio/2012Apresentacao Comite de Metricas IAB - Maio/2012
Apresentacao Comite de Metricas IAB - Maio/2012
 
Apostila 05
Apostila 05Apostila 05
Apostila 05
 
December 2016 bio gas+ newsletter
December 2016 bio gas+ newsletterDecember 2016 bio gas+ newsletter
December 2016 bio gas+ newsletter
 
Passeioda8seriefazzendaparkhotel
Passeioda8seriefazzendaparkhotelPasseioda8seriefazzendaparkhotel
Passeioda8seriefazzendaparkhotel
 
City Tours Celendin
City  Tours  CelendinCity  Tours  Celendin
City Tours Celendin
 

Similar to Html Metaform дмитрий котеров

Разработка сложного каталога средствами CMF Bitrix
Разработка сложного каталога средствами CMF BitrixРазработка сложного каталога средствами CMF Bitrix
Разработка сложного каталога средствами CMF BitrixKyrylo Melnychuk
 
Js Http Request дмитрий котеров
Js Http Request   дмитрий котеровJs Http Request   дмитрий котеров
Js Http Request дмитрий котеровMedia Gorod
 
Введение в Windows Communication Foundation
Введение в Windows Communication FoundationВведение в Windows Communication Foundation
Введение в Windows Communication Foundationakrakovetsky
 
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance ConferenceВыступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance ConferenceEYevseyeva
 
Zen Coding
Zen CodingZen Coding
Zen Coding404fest
 
ASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложениеASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложениеAlexander Byndyu
 
Web весна 2013 лекция 4
Web весна 2013 лекция 4Web весна 2013 лекция 4
Web весна 2013 лекция 4Technopark
 
Структура html документа
Структура html документаСтруктура html документа
Структура html документаAndrey Radionov
 
ZFConf 2010: jQuery and Dojo Toolkit JavaScript-frameworks Integration with Z...
ZFConf 2010: jQuery and Dojo Toolkit JavaScript-frameworks Integration with Z...ZFConf 2010: jQuery and Dojo Toolkit JavaScript-frameworks Integration with Z...
ZFConf 2010: jQuery and Dojo Toolkit JavaScript-frameworks Integration with Z...ZFConf Conference
 
семинар I context
семинар I contextсеминар I context
семинар I contextSEMonline .Ru
 
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)ZFConf Conference
 
Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...
Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...
Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...Alexander Byndyu
 
Работа с платежными системами в Django (Paypal, WebMoney)
Работа с платежными системами в Django (Paypal, WebMoney)Работа с платежными системами в Django (Paypal, WebMoney)
Работа с платежными системами в Django (Paypal, WebMoney)proft
 
Django шахрай. версия 4
Django шахрай. версия 4Django шахрай. версия 4
Django шахрай. версия 4smikler
 
Реализация шаблонов корпоративных приложений в Magento
Реализация шаблонов корпоративных приложений в MagentoРеализация шаблонов корпоративных приложений в Magento
Реализация шаблонов корпоративных приложений в MagentoMagecom Ukraine
 

Similar to Html Metaform дмитрий котеров (20)

Разработка сложного каталога средствами CMF Bitrix
Разработка сложного каталога средствами CMF BitrixРазработка сложного каталога средствами CMF Bitrix
Разработка сложного каталога средствами CMF Bitrix
 
Js Http Request дмитрий котеров
Js Http Request   дмитрий котеровJs Http Request   дмитрий котеров
Js Http Request дмитрий котеров
 
Введение в Django
Введение в DjangoВведение в Django
Введение в Django
 
Введение в Windows Communication Foundation
Введение в Windows Communication FoundationВведение в Windows Communication Foundation
Введение в Windows Communication Foundation
 
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance ConferenceВыступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
 
Zen Coding
Zen CodingZen Coding
Zen Coding
 
ASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложениеASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложение
 
XML Schema
XML SchemaXML Schema
XML Schema
 
Web весна 2013 лекция 4
Web весна 2013 лекция 4Web весна 2013 лекция 4
Web весна 2013 лекция 4
 
Структура html документа
Структура html документаСтруктура html документа
Структура html документа
 
ZFConf 2010: jQuery and Dojo Toolkit JavaScript-frameworks Integration with Z...
ZFConf 2010: jQuery and Dojo Toolkit JavaScript-frameworks Integration with Z...ZFConf 2010: jQuery and Dojo Toolkit JavaScript-frameworks Integration with Z...
ZFConf 2010: jQuery and Dojo Toolkit JavaScript-frameworks Integration with Z...
 
семинар I context
семинар I contextсеминар I context
семинар I context
 
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
 
Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...
Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...
Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...
 
SECON'2014 - Павел Щеваев - Метаданные и автогенерация кода
SECON'2014 - Павел Щеваев - Метаданные и автогенерация кодаSECON'2014 - Павел Щеваев - Метаданные и автогенерация кода
SECON'2014 - Павел Щеваев - Метаданные и автогенерация кода
 
Работа с платежными системами в Django (Paypal, WebMoney)
Работа с платежными системами в Django (Paypal, WebMoney)Работа с платежными системами в Django (Paypal, WebMoney)
Работа с платежными системами в Django (Paypal, WebMoney)
 
Django шахрай. версия 4
Django шахрай. версия 4Django шахрай. версия 4
Django шахрай. версия 4
 
XML Magic
XML MagicXML Magic
XML Magic
 
Реализация шаблонов корпоративных приложений в Magento
Реализация шаблонов корпоративных приложений в MagentoРеализация шаблонов корпоративных приложений в Magento
Реализация шаблонов корпоративных приложений в Magento
 
Энюшки
ЭнюшкиЭнюшки
Энюшки
 

More from Media Gorod

Iidf market watch_2013
Iidf market watch_2013Iidf market watch_2013
Iidf market watch_2013Media Gorod
 
E travel 2013 ufs-f
E travel 2013 ufs-fE travel 2013 ufs-f
E travel 2013 ufs-fMedia Gorod
 
Travel shop 2013
Travel shop 2013Travel shop 2013
Travel shop 2013Media Gorod
 
Kozyakov pay u_e-travel2013
Kozyakov pay u_e-travel2013Kozyakov pay u_e-travel2013
Kozyakov pay u_e-travel2013Media Gorod
 
13909772985295c7a772abc7.11863824
13909772985295c7a772abc7.1186382413909772985295c7a772abc7.11863824
13909772985295c7a772abc7.11863824Media Gorod
 
As e-travel 2013
As   e-travel 2013As   e-travel 2013
As e-travel 2013Media Gorod
 
Ishounkina internet research-projects
Ishounkina internet research-projectsIshounkina internet research-projects
Ishounkina internet research-projectsMedia Gorod
 
Orlova pay u group_290813_
Orlova pay u group_290813_Orlova pay u group_290813_
Orlova pay u group_290813_Media Gorod
 
Ep presentation (infographic 2013)
Ep presentation (infographic 2013)Ep presentation (infographic 2013)
Ep presentation (infographic 2013)Media Gorod
 
Iway slides e-travel_2013-11_ready
Iway slides e-travel_2013-11_readyIway slides e-travel_2013-11_ready
Iway slides e-travel_2013-11_readyMedia Gorod
 
Data insight e-travel2013
Data insight e-travel2013Data insight e-travel2013
Data insight e-travel2013Media Gorod
 
Электронное Правительство как Продукт
Электронное Правительство как ПродуктЭлектронное Правительство как Продукт
Электронное Правительство как ПродуктMedia Gorod
 
Lean мышление / Специфика Lean Startup
Lean мышление / Специфика Lean StartupLean мышление / Специфика Lean Startup
Lean мышление / Специфика Lean StartupMedia Gorod
 
Глобальный взгляд на мобильный мир (Nielsen)
 Глобальный взгляд на мобильный мир (Nielsen) Глобальный взгляд на мобильный мир (Nielsen)
Глобальный взгляд на мобильный мир (Nielsen)Media Gorod
 
Как россияне используют смартфоны (Nielsen)
 Как россияне используют смартфоны (Nielsen) Как россияне используют смартфоны (Nielsen)
Как россияне используют смартфоны (Nielsen)Media Gorod
 
Мобильный интернет в России (MailRuGroup)
Мобильный интернет в России (MailRuGroup) Мобильный интернет в России (MailRuGroup)
Мобильный интернет в России (MailRuGroup) Media Gorod
 

More from Media Gorod (20)

Itogi2013
Itogi2013Itogi2013
Itogi2013
 
Moneytree rus 1
Moneytree rus 1Moneytree rus 1
Moneytree rus 1
 
Iidf market watch_2013
Iidf market watch_2013Iidf market watch_2013
Iidf market watch_2013
 
E travel 2013 ufs-f
E travel 2013 ufs-fE travel 2013 ufs-f
E travel 2013 ufs-f
 
Travel shop 2013
Travel shop 2013Travel shop 2013
Travel shop 2013
 
Kozyakov pay u_e-travel2013
Kozyakov pay u_e-travel2013Kozyakov pay u_e-travel2013
Kozyakov pay u_e-travel2013
 
13909772985295c7a772abc7.11863824
13909772985295c7a772abc7.1186382413909772985295c7a772abc7.11863824
13909772985295c7a772abc7.11863824
 
As e-travel 2013
As   e-travel 2013As   e-travel 2013
As e-travel 2013
 
Ishounkina internet research-projects
Ishounkina internet research-projectsIshounkina internet research-projects
Ishounkina internet research-projects
 
E travel13
E travel13E travel13
E travel13
 
Orlova pay u group_290813_
Orlova pay u group_290813_Orlova pay u group_290813_
Orlova pay u group_290813_
 
Ep presentation (infographic 2013)
Ep presentation (infographic 2013)Ep presentation (infographic 2013)
Ep presentation (infographic 2013)
 
Iway slides e-travel_2013-11_ready
Iway slides e-travel_2013-11_readyIway slides e-travel_2013-11_ready
Iway slides e-travel_2013-11_ready
 
Data insight e-travel2013
Data insight e-travel2013Data insight e-travel2013
Data insight e-travel2013
 
Электронное Правительство как Продукт
Электронное Правительство как ПродуктЭлектронное Правительство как Продукт
Электронное Правительство как Продукт
 
Lean мышление / Специфика Lean Startup
Lean мышление / Специфика Lean StartupLean мышление / Специфика Lean Startup
Lean мышление / Специфика Lean Startup
 
Глобальный взгляд на мобильный мир (Nielsen)
 Глобальный взгляд на мобильный мир (Nielsen) Глобальный взгляд на мобильный мир (Nielsen)
Глобальный взгляд на мобильный мир (Nielsen)
 
Как россияне используют смартфоны (Nielsen)
 Как россияне используют смартфоны (Nielsen) Как россияне используют смартфоны (Nielsen)
Как россияне используют смартфоны (Nielsen)
 
Мобильный интернет в России (MailRuGroup)
Мобильный интернет в России (MailRuGroup) Мобильный интернет в России (MailRuGroup)
Мобильный интернет в России (MailRuGroup)
 
Meta Mass Media
Meta Mass MediaMeta Mass Media
Meta Mass Media
 

Html Metaform дмитрий котеров

  • 1. MetaForm: неизбыточная работа с метаданными HTML- форм Метаданные формы, защита от подделки, валидация Дмитрий Котеров, архитектор и главный разработчик MoiKrug.ru компания Яндекс [email_address]
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

Editor's Notes

  1. Меня зовут… Я работаю в должности … компании .. Доклад называется …