рдЧреНрд░рд╛рдлрд┐рдХ рдЗрдореЗрдЬ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдмрд┐рдирд╛ PHP + Jquery рдореЗрдВ рдХреИрдкреНрдЪрд╛ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛
рдЖрдЬ, рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗрд╡рд▓ рдПрдХ рдЕрдирдВрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд▓реЗрдЦрдХ рдмреЙрдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЕрдлрд╝рд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЗрдЦрдХреЛрдВ рдХреА рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдЯрд┐рдк рд╣реИред рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рд░рд┐рдпрд▓ рдкрд░реНрд╕рди рдирд╛рдордХ рдПрдХ
jQuery рдкреНрд▓рдЧрдЗрди рд╣реИ, рдпрд╣ рдкреЗрдЬ рдкрд░ рдХреБрдЫ рд╕рдорд╛рди рдмрдирд╛рддрд╛ рд╣реИ:

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╕рднреА рдкрддреНрд░ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рддреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ - рдПрдХ
рддрд╛рд░рд╛рдВрдХрди , рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЪрд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдПред рд▓реЗрдЦрдХ рдХреА рд╕рд╛рдЗрдЯ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬреЛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд▓рдВрдмрд╛рдИ рдФрд░ рдЪрд░рд┐рддреНрд░ рдХреЛ рдмрджрд▓рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИред рд╡рд╣рд╛рдБ рднреА рдЖрдкрдХреЛ рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╣реА рдЗрдирдкреБрдЯ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдорд┐рд▓реЗрдЧрд╛:
if (rpHash($_POST[ 'realPerson' ]) == $_POST[ 'realPersonHash' ]) {
* This source code was highlighted with Source Code Highlighter .
рдИ-рдореЗрд░рд╛, рдФрд░ рдпрд╣рд╛рдБ рдпрд╣ рдорд╣рд╛рдХрд╛рд╡реНрдп рдЕрд╕рдлрд▓ рд╣реИ! рдПрдХ рдЕрднреВрддрдкреВрд░реНрд╡ рдЪрд┐рд░рд╛рдЧ, рд▓реЗрдЦрдХ рдХрд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЖрдП рдбреЗрдЯрд╛ рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдЪреЗрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ ... рдХреНрдпрд╛ рд╡рд╣ рдЦреБрдж рднреА рдЗрд╕рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддрд╛ рд╣реИ? рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ "rpHash ()" рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓реЗрдЦрдХ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рднреА рд╡рд░реНрдгрд┐рдд рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╡реЗрдХ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рдерд╛:
if ($_POST[ 'In' ])== $_POST[ 'Out' ]) {
* This source code was highlighted with Source Code Highlighter .
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЛрдб рдХреА рджреЛ рд▓рд╛рдЗрдиреЗрдВ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрд╛рдИрдкрд╛рд╕ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рди рд╣реИрдВред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЯреНрдпреВрд░рд┐рдВрдЧ рдкрд░реАрдХреНрд╖рдг рдХрд╛рдлреА рдЖрд╢рд╛рдЬрдирдХ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрд░рдХреНрд╖рдг рдХреЗ рд╕рдВрдЧрдарди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред
рд╕рдорд╛рдзрд╛рди рд╡рд┐рдзрд┐
рдпрд╣ рдХреИрдкреНрдЪрд╛ рд▓реИрдЯрд┐рди рд╡рд░реНрдгрдорд╛рд▓рд╛ рдФрд░ рдЕрд░рдмреА рдЕрдВрдХреЛрдВ рдХреЗ рдЕрдХреНрд╖рд░реЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддреАрдХ 7x7 рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИред рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕реЗрд▓ рдХреЛ рдХрдмреНрдЬрд╛ рдпрд╛ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд╡реНрдпрд╕реНрдд рд╕реЗрд▓, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдХ рдЕрдВрдзреЗрд░реЗ рдкреГрд╖реНрдарднреВрдорд┐ рд╣реИ, рдФрд░ рдПрдХ рдореБрдХреНрдд рдПрдХ рдкрд╛рд░рджрд░реНрд╢реА рд╣реИред

"рдПрдо" рдЕрдХреНрд╖рд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред
рдХрд┐рд╕реА рднреА рд╕реЗрд▓ рдХреЛ рджреЛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ - x рдФрд░ y рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЦрдВрдбрддрд╛ рдореЗрдВ рдкреНрд░рддреАрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдХрдмреНрдЬреЗ рд╡рд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдореБрдлреНрдд рд╕реЗ рдХрдИ рдЧреБрдирд╛ рдХрдо рд╣реИред рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдПрд░реЗ (X1, y1, x2, y2 ..., xN, yN)
рдкреВрд░реНрд╡рдЧрд╛рдореА рдХреЗ рдЖрдзрд╛рд░ рдкрд░, "рдПрдо" рдЕрдХреНрд╖рд░ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
$abc[ 'm' ] = array(1,1,7,1,1,2,2,2,6,2,7,2,1,3,3,3,5,3,7,3,1,4,4,4,7,4,1,5,7,5,1,6,7,6,1,7,7,7);
* This source code was highlighted with Source Code Highlighter .
рд╡рд░реНрдг рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрдирд╛рддреЗ рд╕рдордп, рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдХреЗ рд╡рд░реНрдг рдХреЗ x рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ n * 7 рдХреЛрд╢рд┐рдХрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд╣рд╛рдБ n рдкреВрд░реНрд╡рд╡рд░реНрддреА рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ:

рддрджрдиреБрд╕рд╛рд░, рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреЛ рд╕рд░рдгрд┐рдпреЛрдВ m (x, y) рдФрд░ a (x + 7, y) рдХреЗ рд╡рд┐рд▓рдп рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд░рдВрднреАрдХреГрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
рдкрдВрдХреНрддрд┐ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рд╕рд░рдгреА рдХрд╛ рдЬрдирд░реЗрдЯрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рдкреАрдПрдЪрдкреА
- // рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╡рд░реНрдгрдорд╛рд▓рд╛
- $ рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдо = 'рдПрдмреНрд╕реАрдбрдлрд┐рдЬрд┐рдХрдореЛрдиреЛрдкрдХреНрд╕реНрдЯреНрд░рд╕реНрдЯрд╡рд┐рдХреНрд╕реАрдЬрд╝0123456789' ;
- // рдкрд╛рд╢, рдЪрд░рд┐рддреНрд░ рдирд┐рд░реНрдорд╛рдг,
- // рд▓реВрдк рдХреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ
- рдХреЗ рд▓рд┐рдП ($ i = 0; $ i <$ the_number_of_letters; ++ $ i) {!!!
- // рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдПрдХ рдЪрд░рд┐рддреНрд░ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ
- $ рдкрддреНрд░ = $ рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдо [рдЗрдВрдЯрд╡рд▓ (mt_rand (0, 33))]];
- // рд╡рд░реНрдгреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдПрдВ $ array_str
- foreach ($ abc [$ letter] $ key => $ val)
- // "рд╕рд╣реА" рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рд╕рд░рдгреА рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ
- array_push ($ array_str, ($ key% 2 == 0); $ val + ($ i * 7): 10 val);
- // рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╣реА рдпрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- $ di_captcha_str = $ рдкрддреНрд░;
- }
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдкреНрд░рддреАрдХреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмрд╛рдПрдВ рдФрдЪрд┐рддреНрдп рдХреЗ рд╕рд╛рде рдПрдХ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд▓реНрдкрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ - рдлреНрд▓реЛрдЯ: рдмрд╛рдПрдВ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд▓рдВрдмрд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдЖрдпрд╛рдоред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдХреЛрдИ рднреА рдмреНрд▓реЙрдХ рддрддреНрд╡ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдмрд╕реЗ рдХрдо рдЙрдкрд▓рдмреНрдз рдЯреИрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд╕рдВрдж рдЗрд╕ рдкрд░ рдЧрд┐рд░ рдЧрдИред рдЖрдЙрдЯрдкреБрдЯ рдХреЛрдб рд╣реА:
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ (jQuery)
- // рдмреНрд▓реЙрдХ рд▓рдВрдмрд╛рдИ рдЯреИрдЧ рдХреЗ рд╕рд╛рде
- // рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЯреИрдЧ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЗрд╕ рдореВрд▓реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ
- // рд╕реВрддреНрд░ рд╕рдВрдЦреНрдпрд╛_cells + indent_size_between_cells * 7 рджреНрд╡рд╛рд░рд╛ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ
- // + double_size_cell - рдкрд╛рддреНрд░реЛрдВ рдХреЗ рдмреАрдЪ рдЗрдВрдбреЗрдВрдЯ
- // рдФрд░ рдпрд╣ рд╕рдм рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ n рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- $ ( '#DICaptchaPic' ) .cs ( 'рдЪреМрдбрд╝рд╛рдИ' , (((((cell_size + 2) * 6) + (3 * cell_size) +1) * n));
- рдЯреИрдЧ рд╕реВрдЪреА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП // рдЪрд░
- var html_p_tag = '' ;
- // рд▓реВрдк рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреВрд░реЗ рдРрд░реЗ рдХреЛ рдЯреНрд░реЗрд╕ рдХрд░рддрд╛ рд╣реИ
- for (i = 1; i <= 7 * 7 * n; ++ i) {
- // рдпрджрд┐ рд╕реЗрд▓ рд╕рд╛рдд рдХрд╛ рдПрдХ рдмрд╣реБ рд╣реИ, рддреЛ рдпрд╣ рдЪрд░рд┐рддреНрд░ рдореЗрдВ рдЕрдВрддрд┐рдо рд╣реИ
- // рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЗрд╕рдХреЗ рдмрд╛рдж, рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
- var рд╢реИрд▓реА = (i% 7 == 0)? 'рдорд╛рд░реНрдЬрд┐рди-рд░рд╛рдЗрдЯ:' + 2 * cell_size + 'px;' : '' ;
- // рдпрджрд┐ рд╕реЗрд▓ рд╡реНрдпрд╕реНрдд рд╣реИ, рддреЛ рдЗрд╕рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд▓реА рд╣реИ
- for (j = 0; j <data [1] .length; j + = 2) рд╕реНрдЯрд╛рдЗрд▓ + = (((i% (рдбреЗрдЯрд╛ [0] * 7) == 0)? (data [0] * 7): i% (рдбреЗрдЯрд╛ [0] * 7)) == рдбреЗрдЯрд╛ [1] [рдЬреЗ] рдФрд░& рдореИрде.рд╕реАрд▓ (i / (рдбреЗрдЯрд╛ [0] * 7)) == рдбреЗрдЯрд╛ [1] [рдЬреЗ + 1])? 'рдкреГрд╖реНрдарднреВрдорд┐-рд░рдВрдЧ: # 000;' : '' ;
- // рдЯреИрдЧ рдмрдВрдж рд╣реЛ рдЧрдпрд╛
- html_p_tag + = '<p' + ((рд╢реИрд▓реА == ' )? ' ' : ' рд╢реИрд▓реА = \ '' + рд╢реИрд▓реА + '\' ' ) + '> ' ; }
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдиреЛрдЯред рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдк рдХреЗ рдХрд╛рд░рдг рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рдЕрдиреБрдорд╛рди рдУ (n * n) рд╣реИред рджреВрд╕рд░реЗ рд▓реВрдк рдореЗрдВ рдмреНрд░реЗрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рддрдм рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рд╢рд░реНрдд рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░реА рд╣реЛ рдЬрд╛рдПрдЧреА, рдлрд┐рд░ рджреВрд╕рд░реЗ рд▓реВрдк рдореЗрдВ рдХреЗрд╡рд▓ рдПрд░реЗ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдкреВрд░реЗ рдРрд░реЗ рдХреЛ рдирд╣реАрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреА рд╣реИред рдЖрдк рдЖрдВрддрд░рд┐рдХ рд▓реВрдк рдХреЛ рднреА рдмрд╛рд╣рд░ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкрд╣рд▓реЗ рд╕рднреА рдЯреИрдЧреЛрдВ рдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЖрдИрдбреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рджреВрд╕рд░рд╛ рд▓реВрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рд╕реЗ рдХреЛрдб рдореЗрдВ рдереЛрдбрд╝реА рд╡реГрджреНрдзрд┐ рд╣реЛрдЧреА, рд╕рдВрдЪрд╛рд▓рди рдХреА рдЧрддрд┐ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡реГрджреНрдзрд┐ рд╣реЛрдЧреАред
рдкрд░рд┐рдгрд╛рдо рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╣реИ:

рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рд╕рдВрд╢реЛрдзрди
1. рдпрд╣ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рд╕рд░рдгреА рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдЬрдм рдЗрд╕реЗ рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐, рдкрд╣рд▓реЗ () рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рд╕рд░рдгреА рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝реЗ рдорд┐рд▓рд╛рдПрдВ, рдлрд┐рд░ рдпрд╣ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдИ рдмрд╛рд░ рдЬрдЯрд┐рд▓ рдХрд░реЗрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП, рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, shuffle2 рд╡рд┐рдзрд┐ рдХреЛ рдХрдХреНрд╖рд╛ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХреНрд╕ рдФрд░ рд╡рд╛рдИ рдЬреЛрдбрд╝реЗ рдХреЛ рднреНрд░рдорд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╕рд░рдгреА рдХреЛ рдзреАрд░реЗ рд╕реЗ рдлреЗрд░рдмрджрд▓ рдХрд░рддрд╛ рд╣реИред
рдкреАрдПрдЪрдкреА
- рдлрд╝рдВрдХреНрд╢рди рд╢рдлрд▓ 2 ($ рд╕рд░рдгреА) {
- рдХреЗ рд▓рд┐рдП ($ i = 0; $ i <count ($ array); $ i + = 2)
- рдХреЗ рд▓рд┐рдП ($ j = count ($ array) -2; $ j> $ i; $ j - = 2)
- рдЕрдЧрд░ (mt_rand (0, 1)> 0) {
- $ рд╕рд░рдгреА [$ i] + = $ рд╕рд░рдгреА [$ j]; $ рд╕рд░рдгреА [$ j] = $ рд╕рд░рдгреА [$ i] - $ рд╕рд░рдгреА [$ j]; $ рд╕рд░рдгреА [$ i] - = $ рд╕рд░рдгреА [$ j];
- $ рд╕рд░рдгреА [$ i + 1] + = $ рд╕рд░рдгреА [$ j + 1]; $ рд╕рд░рдгреА [$ j + 1] = $ рд╕рд░рдгреА [$ i + 1] - $ рд╕рд░рдгреА [$ j + 1]; $ рд╕рд░рдгреА [$ i + 1] - = $ рд╕рд░рдгреА [$ j + 1];
- }
- $ рд╕рд░рдгреА рд▓реМрдЯрд╛рдПрдВ ;
- }
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
2. рдпрджрд┐ рдЖрдк рд╕рдордиреНрд╡рдп рд╕рд░рдгреА рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╢реЛрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдмрдирд╛ рджреЗрдЧрд╛ред
рд╢реЛрд░ рджреЛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛрдЧрд╛, рд╡рд╣ рд╢реЛрд░ рдЬреЛ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рджрдмрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╢реЛрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд▓рд┐рдП рдлреИрд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдХреБрдЫ рдореБрдлреНрдд рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдХрдмреНрдЬреЗ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджреЗрдВрдЧреАред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрдВрдХреНрддрд┐ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рд╕рд░рдгреА рдХрд╛ рдЬрдирд░реЗрдЯрд░ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
рдкреАрдПрдЪрдкреА
- // $ рдпрд╣-> рдЬрдм рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╢реЛрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ
- // рдорд╛рди 0 рд╕реЗ (рдХреЛрдИ рд╢реЛрд░ рдирд╣реАрдВ) 10 рддрдХ рд▓реЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- $ рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдо = 'рдПрдмреНрд╕реАрдбрдлрд┐рдЬрд┐рдХрдореЛрдиреЛрдкрдХреНрд╕реНрдЯреНрд░рд╕реНрдЯрд╡рд┐рдХреНрд╕реАрдЬрд╝0123456789' ;
- // рдореБрдЦреНрдп рд▓реВрдк
- for ($ i = 0; $ i <$ this -> the_number_of_letters; ++ $ i) {
- $ рдкрддреНрд░ = $ рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдо [рдЗрдВрдЯрд╡рд▓ (mt_rand (0, 33))]];
- рдХреЗ рд▓рд┐рдП ($ j = 0; $ j <count ($ this -> abc [$ letter]); $ j + = 2;
- // рдЖрдВрддрд░рд┐рдХ рд╢реЛрд░
- рдЕрдЧрд░ (mt_rand (1, 100)> $ рдпрд╣ -> рд╢реЛрд░ * 5)
- array_push ($ рдпрд╣ -> array_str, $ this -> abc [$ letter] [$ j] + ($ i * 7), $ this -> abc [$ letter] [$ j + 1]);
- // рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд▓рд┐рдП рд╢реЛрд░
- рдХреЗ рд▓рд┐рдП ($ j = 0; $ j <7 * 7 * ( рдпрд╣ $ -> рд╢реЛрд░ / 20); ++ $ j) {
- array_push ($ рдпрд╣ -> array_str, mt_rand (1, 7) + ($ i * 7), mt_rand (1, 7));
- }
- $ _SIONION [ 'di_captcha_str' ] = $ рдкрддреНрд░;
- }
- $ рдпрд╣ рд▓реМрдЯрд╛рдПрдБ -> shuffle2 ($ рдпрд╣ -> array_str);
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:

рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЙрджрд╛рд╣рд░рдг
рдореБрдЦреНрдп рд╡рд░реНрдЧ:
рдкреАрдПрдЪрдкреА
- // рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ 6 рджреНрд╡рд╛рд░рд╛, рд╡рд░реНрдгреЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
- // рд╡рд░реНрдЧ рд╡рд┐рдзрд┐рдпрд╛рдБ:
- // shuffle2 () - рд╕рд░рдгреА рдлреЗрд░рдмрджрд▓ред
- // рд╕реЗрдЯ () - рд╡рд░реНрдЧ рдХреЗ рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред
- // get () - рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рддреНрд░ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред
- // check () - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдкрд╛рда рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд╕рддреНрд░ рдореЗрдВ рджрд░реНрдЬ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред
- рдирд╛рдорд╕реНрдерд╛рди di;
- рд╡рд░реНрдЧ рдХреИрдкреНрдЪрд╛ {
- рдирд┐рдЬреА $ str, $ array_str = array (), $ abc = array (), $ the_number_of_letters = 6, $ рд╢реЛрд░ = 1;
- рдлрд╝рдВрдХреНрд╢рди __construct ($ the_number_of_letters = 6) {
- $ рдпрд╣ -> the_number_of_letters = $ the_number_of_letters;
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ 'рдП ] = рд╕рд░рдгреА (рек,рез,рей,реи,рел,рей,рей,рей,рей,рей,рек,рек,рек,режреж,режреж,реж,рей,рей,рек , 5,5,5,6,5,1,6,7,6,1,7,7,7);
- рдЗрд╕ $ , 3,1,4,2,4,4,4,4,4,4,4,4,6,4,1,5,7,5,1,6,7,6,1,7,2,2 , 3,7,4,7,5,7,6,6);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ 'рд╕реА' ] = рд╕рд░рдгреА (реи,рез,рей,рез,рек,рек,рел,рез,рем,рез,рез,реи,реи,реи,реи,рез,рей,рек,рек,рез , 5,1,6,7,6,2,7,3,7,4,7,5,7,6,7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ 'рдбреА' ] = рд╕рд░рдгреА (рез,рез,реи,рез,рей,рек,рек,рез,рел,рез,рем,рем,рез,реи,реи,реи,реи,рез,рей,c , 3,1,4,7,4,1,5,7,5,1,6,7,6,1,7,2,7,3,7,4,7,5,7,6,7 );
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ 'рдИ' ] = рд╕рд░рдгреА (рез,рез,реи,рез,рей,рек,рек,рез,рел,рез,рем,рем,рез,реж,рез,рез,реи,рей,рез,рез , 4,2,4,3,4,4,4,1,5,1,6,1,7,2,7,3,4,7,5,7,7,7,7,7,7 );
- рдЗрд╕ $ , 4,2,4,3,4,4,4,4,5,5,1,6,1,7);
- рдЗрд╕ $ , 5.5,5,6,5,7,5,1,6,7,6,2,7,3,7,4,7,5,7,6,7);
- рдЗрд╕ $ , 4,5,4,6,4,7,4,1,5,7,5,1,6,7,6,1,7,7,7);
- рдЗрд╕ $ , 4,4,5,4,6,1,7,2,7,3,7,4,7,5,7,6,7,7,7);
- рдЗрд╕ $ , 7,5,7,6,7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ 'рдХреЗ' ] = рд╕рд░рдгреА (резрез,1,рез,рез,реи,рел,реи,реи,реи,рей,рей,рей,рей,рей,рек,рей,рез,рек,режреж , 4,1,5,3,5,4,5,1,6,5,6,6,6,6,1,7,7,7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ 'l' ] = рд╕рд░рдгреА (резрез,рез,реи,реи,рей,рей,рек,рек,рез,рел,рез,рем,рем,,6,рей,рей,,4,рек,рек , 7,5,7,6,7,7,7);
- рдЗрд╕ $ , 3,1,4,4,4,7,4,1,5,7,5,1,6,7,6,1,7,7,7);
- рдЗрд╕ $ , 4.7,4,1,5,5,5,7,5,1,6,6,6,7,6,6,1,7,7,7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ 'рдУ' ] = рд╕рд░рдгреА (реи,рез,рей,рез,рек,рек,рел,рез,рем,рем,рез,рез,реи,реи,реи,рей,рей,рей,рей,рез , 4,7,4,1,5,7,5,1,6,7,6,2,7,3,7,4,7,5,7,6,7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ 'рдкреА' ] = рд╕рд░рдгреА (рез,рез,реи,рез,рей,рек,рек,рез,рел,рез,рем,рем,рез,реи,реи,реи,реи,рез,рей,c , 3,1,4,2,4,4,4,4,4,5,4,6,6,4,1,5,1,6,1,7);
- $ рдпрд╣ -> abc [ 'q' ] = рд╕рд░рдгреА (реи,рез,рей,рез,рек,рек,рел,рез,рем,рем,рез,реи,реи,реи,реи,рей,рей,рей,рей,рез , 4,7,4,1,5,5,5,7,5,1,6,6,6,2,7,3,7,7,7,7,7,7,7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ 'рдЖрд░' ] = рд╕рд░рдгреА (рез,рез,реи,рез,рей,рек,рек,рез,рел,рез,рем,рем,рез,реи,реи,реи,реи,рез,рей,c , 3,1,4,2,4,4,4,4,4,4,4,4,6,4,1,5,5,5,1,6,6,6,1,7,7,7 );
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ 's' ] = рд╕рд░рдгреА (реи,рез,рей,рез,рек,рек,рел,рез,рем,рем,рез,рез,реи,реи,реи,рей,реи,рей,рек,рей , 4,4,4,5,4,6,4,7,5,1,6,7,6,2,7,3,7,4,7,5,7,6,7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ 'рдЯреА' ] = рд╕рд░рдгреА (рез,рез,реи,рез,рей,рек,рек,рез,рел,рез,рем,рем,рез,реи,рек,рек,рек,рек,рек, , 4,4,5,4,6,4,7);
- $ рдпрд╣ -> abc [ 'u' ] = рд╕рд░рдгреА (резрез,1,рез,рез,реи,реи,реи,реи,рей,рей,рей,рей,рей,рек,рек,рек,рез,рел,c, , 5,1,6,7,6,2,7,3,7,4,7,5,7,6,7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ 'v' ] = рд╕рд░рдгреА (резрез,1,рез,рез,реи,реи,реи,реи,рей,рей,рей,рей,рей,рек,рек,рел,режреж,режреж,рел , 5,3,6,5,6,4,7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ 'w' ] = рд╕рд░рдгреА (резрез,1,рез,рез,реи,реи,реи,реи,рей,рей,рей,рей,рек,рек,рек,рек,рек,рек,рез , 5,3,5,5,5,7,5,1,6,2,6,6,6,6,6,7,6,6,1,7,7,7);
- рдЗрд╕ $ , 6,6,6,1,7,7,7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ 'y' ] = рд╕рд░рдгреА (резрез,1,рез,реи,реи,рем,рей,рей,рей,рей,рей,рек,рек,рек,режреж,рек,рек,режреж , 7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ 'z' ] = рд╕рд░рдгреА (рез,рез,реи,рез,рей,рек,рек,рез,рел,рел,рез,рем,рем,рез,рем,рем,рей,рел,рек,рек , 4,3,5,2,6,1,7,2,7,3,7,4,7,5,7,6,7,7,7);
- $ рдпрд╣ -> abc [ '0' ] = рд╕рд░рдгреА (3,1,4,1,5,1,2,2,6,2,1,3,5,3,7,3,1,4,4 , 4,7,4,1,5,3,5,7,5,2,6,6,6,6,3,7,4,7,5,7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ '1' ] = рд╕рд░рдгреА (4,1,3,2,4,2,2,3,4,3,4,4,4,5,4,6,6,6,6,7,7,2 , 7,3,7,4,7,5,7,6,7,7,7);
- $ рдпрд╣ -> abc [ '2' ] = рд╕рд░рдгреА (2,1,3,1,4,1,5,1,6,1,1,2,7,7,7,6,6,4,4 , 5.5.5.2.6,3,6,1,7,2,7,3,7,4,7,5,7,7,7,7,7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ '3' ] = рд╕рд░рдгреА (2,1,3,1,4,1,5,1,6,1,1,2,7,7,7,5,5,6,6,6 , 4,7,5,1,6,7,6,2,7,3,7,4,7,5,7,7,7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ '4' ] = рд╕рд░рдгреА (5,1,4,2,5,3,3,3,5,3,2,4,5,4,4,1,2,2,5,3 , 5,4,5,5,5,6,5,7,7,5,6,6,7);
- $ рдпрд╣ -> abc [ '5' ] = рд╕рд░рдгреА (1,1,2,1,3,1,4,1,5,1,6,1,7,1,1,2,1,3,2 , 3,3,3,4,3,5,3,6,3,7,4,7,5,1,6,7,6,2,7,3,7,7,7,5,7,7 , 6.7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ '6' ] = рд╕рд░рдгреА (3,1,4,1,5,1,6,1,2,2,1,3,1,4,2,4,4,4,4 , 4,5,4,6,4,1,5,7,5,1,6,7,6,2,7,3,7,4,7,5,7,6,7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ '7' ] = рд╕рд░рдгреА (1,1,2,1,3,1,4,1,5,1,6,1,7,1,6,2,5,3,4 , 4,3,5,2,6,1,7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ '8' ] = рд╕рд░рдгреА (2,1,3,1,4,1,5,1,6,1,1,2,7,2,1,3,7,3,2 , 4,3,4,4,5,5,4,6,4,1,5,7,5,1,6,7,6,2,7,3,7,7,7,5,7,7 , 6.7);
- $ рдпрд╣ -> рдПрдмреАрд╕реА [ '9' ] = рд╕рд░рдгреА (2,1,3,1,4,1,5,1,6,1,1,2,7,2,1,3,7,3,2 , 4,3,4,4,5,4,4,6,4,4,4,4,5,6,6,6,2,7,3,7,7,7,7,7);
- }
- рдирд┐рдЬреА рд╕рдорд╛рд░реЛрд╣ shuffle2 ($ рд╕рд░рдгреА) {
- рдХреЗ рд▓рд┐рдП ($ i = 0; $ i <count ($ array); $ i + = 2)
- рдХреЗ рд▓рд┐рдП ($ j = count ($ array) -2; $ j> $ i; $ j - = 2)
- рдЕрдЧрд░ (mt_rand (0, 1)> 0) {
- $ рд╕рд░рдгреА [$ i] + = $ рд╕рд░рдгреА [$ j]; $ рд╕рд░рдгреА [$ j] = $ рд╕рд░рдгреА [$ i] - $ рд╕рд░рдгреА [$ j]; $ рд╕рд░рдгреА [$ i] - = $ рд╕рд░рдгреА [$ j];
- $ рд╕рд░рдгреА [$ i + 1] + = $ рд╕рд░рдгреА [$ j + 1]; $ рд╕рд░рдгреА [$ j + 1] = $ рд╕рд░рдгреА [$ i + 1] - $ рд╕рд░рдгреА [$ j + 1]; $ рд╕рд░рдгреА [$ i + 1] - = $ рд╕рд░рдгреА [$ j + 1];
- }
- $ рд╕рд░рдгреА рд▓реМрдЯрд╛рдПрдВ ;
- }
- рд╕рдорд╛рд░реЛрд╣ рд╕реЗрдЯ ($ рдирд╛рдо, $ рд╡реИрд▓) {
- рд╕реНрд╡рд┐рдЪ ($ рдирд╛рдо) {
- рдорд╛рдорд▓рд╛ 'the_number_of_letters' :
- $ рдпрд╣ -> the_number_of_letters = ( int ) $ val;
- рддреЛрдбрд╝рдирд╛ ;
- рдорд╛рдорд▓рд╛ 'рд╢реЛрд░' :
- $ рдпрд╣ -> рд╢реЛрд░ = ( рдЗрдВрдЯ ) $ рдШрд╛рдЯреА;
- рддреЛрдбрд╝рдирд╛ ;
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ :
- рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;
- }
- рд╕рдЪ рд▓реМрдЯрдирд╛ ;
- }
- рдлрд╝рдВрдХреНрд╢рди рдорд┐рд▓рддрд╛ рд╣реИ () {
- $ рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдо = 'рдПрдмреНрд╕реАрдбрдлрд┐рдЬрд┐рдХрдореЛрдиреЛрдкрдХреНрд╕реНрдЯреНрд░рд╕реНрдЯрд╡рд┐рдХреНрд╕реАрдЬрд╝0123456789' ;
- unset ($ _ рд╕реЗрд╢рди [ 'di_captcha_str' ]);
- for ($ i = 0; $ i <$ this -> the_number_of_letters; ++ $ i) {
- $ рдкрддреНрд░ = $ рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдо [рдЗрдВрдЯрд╡рд▓ (mt_rand (0, 33))]];
- // foreach ($ рдпрд╣-> рдПрдмреАрд╕реА [$ рдкрддреНрд░] $ рдХреБрдВрдЬреА => $ рд╡реИрд▓)
- // array_push ($ рдпрд╣-> array_str, ($ key% 2 == 0); $ val + ($ i * 7): $ val);
- рдХреЗ рд▓рд┐рдП ($ j = 0; $ j <count ($ this -> abc [$ letter]); $ j + = 2;
- рдЕрдЧрд░ (mt_rand (1, 100)> $ рдпрд╣ -> рд╢реЛрд░ * 5)
- array_push ($ рдпрд╣ -> array_str, $ this -> abc [$ letter] [$ j] + ($ i * 7), $ this -> abc [$ letter] [$ j + 1]);
- рдХреЗ рд▓рд┐рдП ($ j = 0; $ j <7 * 7 * ( рдпрд╣ $ -> рд╢реЛрд░ / 20); ++ $ j) {
- array_push ($ рдпрд╣ -> array_str, mt_rand (1, 7) + ($ i * 7), mt_rand (1, 7));
- }
- $ _SIONION [ 'di_captcha_str' ] = $ рдкрддреНрд░;
- }
- $ рдпрд╣ рд▓реМрдЯрд╛рдПрдБ -> shuffle2 ($ рдпрд╣ -> array_str);
- }
- рд╕рдорд╛рд░реЛрд╣ рдХреА рдЬрд╛рдБрдЪ ($ in_string) {
- рдЧреВрдВрдЬ $ in_stringред '|' ред $ _ рд╕рддреНрд░ [ 'di_captcha_str' ];
- рд╡рд╛рдкрд╕реА (strtolower ($ in_string) == $ _SIONION [ 'di_captcha_str' ])? рд╕рдЪ : рдЧрд▓рдд ;
- }
- }
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
Phar рдмрдирд╛рдиреЗ рдФрд░ рдЙрд╕реЗ рдХрдВрдкреНрд░реЗрд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдПрдХ рдлрд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИ di_captcha.class.phar.gz рдЬрд┐рд╕рдХрд╛ рд╡рдЬрди 3.53kb рд╣реИред
рдЙрджрд╛рд╣рд░рдг рд╡рд░реНрдЧ рдЙрдкрдпреЛрдЧ:
PHP + html
// index.php
//
session_start();
// THE_NUMBER_OF_LETTERS тАУ ,
define( 'THE_NUMBER_OF_LETTERS' , 6);
// js , .
if (isset($_POST[ 'action' ]{14}) && $_POST[ 'action' ] == 'captcha_refresh' ) {
require 'phar://di_captcha.class.phar.gz/di_captcha.class.php' ;
$captcha = new di\captcha();
$captcha-> set ( 'noise' , 0);
echo json_encode(array(THE_NUMBER_OF_LETTERS, $captcha-> get ()));
} else {
? > <br> <! DOCTYPE html > <br> < html > <br> < head > <br> < meta charset ='utf-8' > <br> < title > Test </ title > <br> < link rel ='stylesheet' media ='all' href ='style.css' > <br> < script type ='text/javascript' src ='jquery-1.6.1.min.js' charset ='utf-8' ></ script > <br> src= 'script.js' charset= 'utf-8' > </ script > <br> </ head > <br> < body > <br> < p id ='Title' > -, ! </ p > <br> < p id ='Msg' > <br> <? php <br> if ( isset ($ _POST [ 'action' ]{ 11 }) && ; $ _POST [ 'action' ] == 'captcha_send' ) {;<br> require 'phar://di_captcha.class.phar.gz/di_captcha.class.php' ;<br> $ captcha = new di \ captcha ();<br> echo ($ captcha- > check($_POST['text_captcha']))?'- !':' , ...';<br> }<br> ? > <br> </ p > <br> < form action ='index.php' method ='post' > <br> < div id ='DICaptchaPic' ></ div > <br> < p style ='padding: 0 10px;' > <br> < input type ='text' name ='text_captcha' id ='text_captcha' value ='<?php echo $_POST[' text_captcha ']; ? > ' placeholder='6 ' >< br >< label for ='text_captcha' > *a- </ label > < ahref ='#' onclick ='di_captcha_refresh(); return false;' > </ a > <br> </ p > <br> < p style ='padding: 10px 0;' > <br> < input type ='hidden' name ='action' value ='captcha_send' /> <br> < input type ='submit' name ='submit' value ='' /> <br> </ p > <br> </ form > <br> </ body > <br> </ html > <br> <? php<br> } <br> * This source code was highlighted with Source Code Highlighter .
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ js рд╕реЗ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рдкрд░, рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рд╕рд░рдгреА рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИред
рдФрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬреЗрдПрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ:
рдЬреЗ рдПрд╕- / * script.js * /
- / * cell_size - рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рд╕реЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ * /
- var cell_size = 3;
- рд╕рдорд╛рд░реЛрд╣ di_captcha_refresh () {
- $ .post ( './index.php' , {рдХреНрд░рд┐рдпрд╛: 'captcha_refresh' ),
- рдлрд╝рдВрдХреНрд╢рди (рдбреЗрдЯрд╛) {
- var data = eval (рдбреЗрдЯрд╛);
- $ ( '#DICaptchaPic' ) .css ( 'рдЪреМрдбрд╝рд╛рдИ' , (((((cell_size + 2) * 6) + (3 * cell_size) +1) * рдбреЗрдЯрд╛ [0]);
- var html_p_tag = '' ;
- рдХреЗ рд▓рд┐рдП (i = 1; рдореИрдВ <= 7 * 7 * рдбреЗрдЯрд╛ [0]; ++ i) {
- var рд╢реИрд▓реА = (i% 7 == 0)? 'рдорд╛рд░реНрдЬрд┐рди-рд░рд╛рдЗрдЯ:' + 2 * cell_size + 'px;' : '' ;
- for (j = 0; j <data [1] .length; j + = 2) рд╕реНрдЯрд╛рдЗрд▓ + = (((i% (рдбреЗрдЯрд╛ [0] * 7) == 0)? (data [0] * 7): i% (рдбреЗрдЯрд╛ [0] * 7)) == рдбреЗрдЯрд╛ [1] [рдЬреЗ] рдФрд░& рдореИрде.рд╕реАрд▓ (i / (рдбреЗрдЯрд╛ [0] * 7)) == рдбреЗрдЯрд╛ [1] [рдЬреЗ + 1])? 'рдкреГрд╖реНрдарднреВрдорд┐-рд░рдВрдЧ: # 000;' : '' ;
- html_p_tag + = '<p' + ((рд╢реИрд▓реА == ' )? ' ' : ' рд╢реИрд▓реА = \ '' + рд╢реИрд▓реА + '\' ' ) + '> ''
} $ ( '#DICaptchaPic' ) .html (html_p_tag); })} $ ( рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ )ред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ( рдлрд╝рдВрдХреНрд╢рди () {$ ( '#DICaptchaPic' ) .css ( 'рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣' , 'рдЫрд┐рдкрд╛ рд╣реБрдЖ' ); $ ( (#DICaptchaPic ' ) .css ( ' рдКрдБрдЪрд╛рдИ ') , (cell_size + 2) * 7); di_captcha_refresh (); $ ( '#DICaptchaPic' )) .click ( рдлрд╝рдВрдХреНрд╢рди () {di_captcha_refresh ();};}; $ ( # atext_captcha ' )) .focus ()}) * рдпрд╣ рд╕реНрд░реЛрдд рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реНрд░реЛрдд рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде ред

рдкреБрдирд╢реНрдЪ
1. рдпрджрд┐ рдЖрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреАрдврд╝реА рд╡рд░реНрдЧ рдореЗрдВ рд╡рд░реНрдг рдкреИрдЯрд░реНрди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддрд┐ рд╡рд░реНрдг рдХрдИ рдкреИрдЯрд░реНрди, рдпрд╣ рдкреИрдЯрд░реНрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЛ рдФрд░ рдЬрдЯрд┐рд▓ рдХрд░реЗрдЧрд╛ред
2. _http: //decaptcher.com, _http: //captchabot.com рдФрд░ _http: //antigate.com/ рдХреЗ рдХрд░реНрдордЪрд╛рд░реА рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреИрдкреНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЗрдВрдЧреЗред
3. рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдореЗрд░реЗ рджреЛрд╕реНрдд рдиреЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ рд╡реЗрдм рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╕реЗрдХреНрд╢рди рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ 16 рдорд┐рдиреНрдпреВрдЬрд╝, 14 рдкреНрд▓рд╕ рдФрд░ 11 рдХрдореЗрдВрдЯ рдХрд┐рдП рдереЗред рддрдм рдЙрд╕реЗ рдордзреНрдпрд╕реНрдереЛрдВ рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рджрдлрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ "рд╡рд╣ рд╕рд╛рдЗрдЯ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ (рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдкреЛрд╕реНрдЯ рдФрд░ рдЖрдордВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рднреАрдЦ рдорд╛рдБрдЧрддрд╛ рд╣реИ)", рд▓реЗрдЦ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдХреЛрдИ рднреА рдЖрдордВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреАрдЦ рдирд╣реАрдВ рдорд╛рдВрдЧрддрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ рдХрд┐ рд╡рд╣ рд▓реЗрдЦ рдХрд╛ рд▓реЗрдЦрдХ рдирд╣реАрдВ рдерд╛ред рдлрд┐рд░ рд╡рд╣ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдЖ рдЧрдИ рдФрд░ рдЙрд╕рдиреЗ рдПрдХ рдирд┐рдордВрддреНрд░рдг рдЕрд░реНрдЬрд┐рдд рдХрд┐рдпрд╛ред
4. 11 рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд░реНрде:
- рдХреИрдкреНрдЪрд╛ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдз рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдкреИрдЯрд░реНрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
- рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рджреМрд░рд╛рди рд╢реЛрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдбрд╝реА рд╢рд╛рджреА рд╣реЛрдЧреА
- "O" рдФрд░ "D", "C" рдФрд░ "G" рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рд╢реЛрд░ рдХреЗ рд╕рд╛рде рдХрднреА-рдХрднреА рдкрдврд╝рдирд╛ рдФрд░ рднреНрд░рдорд┐рдд рд╣реЛрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд╡рд░реНрдгрдорд╛рд▓рд╛ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ
- рдЖрдк рдХрд┐рд╕реА рднреА рдХреИрдкреНрдЪрд╛ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдИрдкрд╛рд╕ рдХреА рдкрдардиреАрдпрддрд╛ рдФрд░ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдмреАрдЪ рд╕рдордЭреМрддрд╛ рдХрд░рдирд╛ рд╣реИ
рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВрдбреЗрдореЛ:
рд╢реЛрд░ рдХреЗ
рд╕рд╛рде ,
рд╢реЛрд░ (1)UPD: рдирд╛рдЧрд╛рддреЛ рдиреЗ рдПрдХ
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЬреЛ 70% рдорд╛рдорд▓реЛрдВ рдореЗрдВ
рдХреИрдкреНрдЪрд╛ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ
рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддреА рд╣реИ ред