рдХреИрдкреНрдЪрд╛ рдХреЗ рдмрд┐рдирд╛ рд╕реНрдкреИрдо рд╕реЗ рд╡реЗрдм рд░реВрдкреЛрдВ рдХреА рд░рдХреНрд╖рд╛ рдХрд░рдирд╛ - 2: рдмреЛрдЯреЛрдмреЛрд░

рддреАрди рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдПрдХ рд▓реЗрдЦ "рдлреЙрд░реНрдо рд╕реНрдкреИрдо рдмреЙрдЯ рдмреНрд▓реЙрдХрд░: рдХреИрдкреНрдЪрд╛ рдХреЗ рдмрд┐рдирд╛ рд╡реЗрдм рд░реВрдкреЛрдВ рдХреА рд░рдХреНрд╖рд╛ рдХрд░рдирд╛!" рд╣реИрдмрд░ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕реНрдкреИрдо рдмреЙрдЯ рд╕реЗ рд░реВрдкреЛрдВ рдХреА рд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП PHP рдХреЗ рд▓рд┐рдП рдХреИрдкреНрдЪрд╛ рдХреЗ рдПрдХ рдореМрд▓рд┐рдХ рдЕрд▓рдЧ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рдирд┐рд░реНрдгрдп рдлрд┐рд▓ рд╣реИрдХ - рд╣рдиреАрдкреЛрдЯ рдХреИрдкреНрдЪрд╛ рдФрд░ рдиреЗрдб рдмреИрдЪреЗрд▓реНрдб - рд╣реИрд╢ рдФрд░ рд╣рдиреАрдкреЛрдЯреНрд╕ рдХреЗ рд╕рд╛рде рд╕реНрдЯреЙрдкрд┐рдВрдЧ рд╕реНрдкреЙрдЯ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрдХреНрдд рдХрд┐рдП рдЧрдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд▓реЗрдЦ рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд░реНрдЧ PHP4 рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ 2007 рдХреЗ рдмрд╛рдж рд╕реЗ рдЗрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди PHP5 рдореЗрдВ рдЗрд╕рдХреЗ рд╕рдордХрдХреНрд╖ рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

Botobor



рдмреЛрдЯреЛрдмреЛрд░ - PHP 5.0 рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдЬрд┐рд╕реЗ рд░реЛрдмреЛрдЯ рдХреЗ рд╕рд╛рде рд╡реЗрдм рдлрд╝реЙрд░реНрдо рднрд░рдиреЗ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐рдпрд╛рдБ рдорд╛рдирд╡ рдЖрдЧрдВрддреБрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрджреГрд╢реНрдп рд╣реИрдВред

рд░реЛрдмреЛрдЯ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмреЛрдЯреЛрдмреЛрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдВрдЪреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:



рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рднреА рдЪреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбреЗрд╡рд▓рдкрд░ рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рднреА рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг


рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ

рдХреЛрдб рдХрд╛ рдПрдХ рд╕реНрдирд┐рдкреЗрдЯ рдЬреЛ рдлреЙрд░реНрдо рдмрдирд╛рддрд╛ рд╣реИ:
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ 'рдмреЙрдЯреЛрдмреЛрд░.рдлреНрдк' ;
...
// рдлреЙрд░реНрдо рдХрд╛ рд▓реЗрдЖрдЙрдЯ рдЙрд╕ рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
$ html = $ рдлреЙрд░реНрдо -> getHTML ( ) ;
// рдПрдХ рдЖрд╡рд░рдг рд╡рд╕реНрддреБ рдмрдирд╛рдПрдБ:
$ bform = new Botobor_Form ( $ html ) ;
// рдПрдХ рдирдпрд╛ рдлреЙрд░реНрдо рд▓реЗрдЖрдЙрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
$ html = $ bform -> getCode ( ) ;


рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдЬреЛ рдкреНрд░рдкрддреНрд░ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ:
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ 'рдмреЙрдЯреЛрдмреЛрд░.рдлреНрдк' ;
...
рдЕрдЧрд░ ( рдмреЙрдЯрдмреЛрд░_рдХреАрдкрд░ :: isHuman ( ) )
{
// рдлреЙрд░реНрдо рдПрдХ рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
}


рдлреЙрд░реНрдо рдЕрдиреБрдХреВрд▓рди рдЙрджрд╛рд╣рд░рдг

рдХреЛрдб рдХрд╛ рдПрдХ рд╕реНрдирд┐рдкреЗрдЯ рдЬреЛ рдлреЙрд░реНрдо рдмрдирд╛рддрд╛ рд╣реИ:
// let $ html рдореЗрдВ рдлреЙрд░реНрдо рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ
$ bform = new Botobor_Form ( $ html ) ;
// рдЪрд╛рд░рд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░реЗрдВ
$ рд╕реБрдзрд╛рд░ -> рд╕реЗрдЯрдЪреЗрдХ ( ' рд╣рдиреАрдкреЛрдЯреНрд╕ ' , рдЧрд▓рдд ) ;
// 2 рд╕реЗрдХрдВрдб рдореЗрдВ рдлреЙрд░реНрдо рднрд░рдиреЗ рдХреА рдирд┐рдЪрд▓реА рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
$ bform -> setDelay ( 2 ) ;
// рдлреЙрд░реНрдо рднрд░рдиреЗ рдХреА рдКрдкрд░реА рд╕реАрдорд╛ 60 рдорд┐рдирдЯ рдореЗрдВ рддрдп рдХреА
$ рд╕реБрдзрд╛рд░ -> рд╕реЗрдЯрд▓рд╛рдЗрдлрдЯрд╛рдЗрдо ( 60 ) ;
$ html = $ bform -> getCode ( ) ;

рдЕрдиреНрдпрдерд╛, рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рдм рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рд╣реИред

рдЙрд╕рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИ?



рдмреЛрдЯрдмреЛрд░ рдлреЙрд░реНрдо рдХреЛрдб рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ

рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ, Botobor_Form рдлреЙрд░реНрдо рдХрд╛ HTML рдХреЛрдб рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдХреЛрдб рдореЗрдВ, рдЦреЛрд▓рдиреЗ рдХреЗ рдмрд╛рдж <form> рдЯреИрдЧ, рдПрдХ рдЫрд┐рдкрд╛ рд╣реБрдЖ (рдкреНрд░рджрд░реНрд╢рди: рдХреЛрдИ рдирд╣реАрдВ) <div> рдЗрдирдкреБрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ [рдкреНрд░рдХрд╛рд░ = рдЫрд┐рдкрд╛ рд╣реБрдЖ] рдХреЗ рдореЗрдЯрд╛-рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдореЗрдЯрд╛-рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдиреЗ рдлреЙрд░реНрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп, рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдкреЛрдВ, рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдПред рдЙрд╕реА рдЫрд┐рдкреЗ рд╣реБрдП рдмреНрд▓реЙрдХ рдореЗрдВ, рдмреЛрдЯреЛрдмреЛрд░ рдЪрд╛рд░рд╛ рдХреНрд╖реЗрддреНрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмреИрдЯ рдлреАрд▓реНрдбреНрд╕

рдмреИрдЯ рдлрд╝реАрд▓реНрдб рдордХрдбрд╝реА рд░реЛрдмреЛрдЯреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд░реВрдкреЛрдВ рдХреЛ рдвреВрдВрдврддреЗ рд╣реИрдВред рдРрд╕реЗ рд░реЛрдмреЛрдЯ, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдлрд╛рд░реНрдо рдореЗрдВ рдкрд░рд┐рдЪрд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд╛рдо) рдФрд░ рдЙрдиреНрд╣реЗрдВ рднрд░реЗрдВред рдмреЙрдЯрдмреЛрд░ рдРрд╕реЗ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡реНрдпрдХреНрддрд┐ (рд╕реАрдПрд╕рдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЗ рд░реВрдк рдореЗрдВ рдЫрд┐рдкреЗ рд╣реБрдП рд╣реИрдВред рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЦрд╛рд▓реА рдЫреЛрдбрд╝ рджреЗрдЧрд╛ (рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдмрд╕ рдЗрд╕реЗ рдирд╣реАрдВ рджреЗрдЦреЗрдЧрд╛), рдФрд░ рд░реЛрдмреЛрдЯ рднрд░ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕ рддрд░рд╣ рдЦреБрдж рдХреЛ рджреВрд░ рдХрд░ рджреЗрдЧрд╛ред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдирд┐рдореНрди рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рдирд╛рдо рд╡рд╛рд▓реЗ рдлрд╝реАрд▓реНрдб рдХреЛ рдлрд╝реЙрд░реНрдо рдХреЛрдб рдореЗрдВ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ: "рдирд╛рдо", "рдореЗрд▓", "рдИрдореЗрд▓" (рд╕реВрдЪреА рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реИ)ред рдкрд╛рдпрд╛ рдЧрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП, рдирд╛рдо рдХреЛ рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ CSS рджреНрд╡рд╛рд░рд╛ рдЫрд┐рдкрд╛рдП рдЧрдП рдХреНрд╖реЗрддреНрд░ рдХреЛ рдореВрд▓ рдирд╛рдо рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд░рд┐рд╡рд░реНрд╕ рдирд╛рдо рд░реВрдкрд╛рдВрддрд░рдг рдмреЙрдЯреЛрдмреЛрд░_рдХреАрдкрд░ :: рд╣реИрдВрдбрд▓Request () рдпрд╛ рдмреЙрдЯреЛрдмреЛрд░_рдХреАрдкрд░ :: isHuman () рдкрджреНрдзрддрд┐ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдХреЛрдИ рдХрд╛рдо рдЖрдПрдЧрд╛ред

Source: https://habr.com/ru/post/In135209/


All Articles