рдирдорд╕реНрдХрд╛рд░ рдкреНрд░рд┐рдп рд╕рд╛рдерд┐рдпреЛрдВред рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣рд╕ рдХрд┐ рдХреНрдпрд╛ рддрдерд╛рдХрдерд┐рдд "рдХреИрдкреНрдЪрд╛" рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рджреБрд╖реНрдЯ рд░реЛрдмреЛрдЯреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓рдбрд╝рд╛рдИ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рд╛рдн рд▓рд╛рддрд╛ рд╣реИ, рдпрд╛ рдХреЗрд╡рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА "рдкреНрд░рдпреЛрдЬреНрдпрддрд╛" рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИ, рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдиреЗ рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд┐рд╖реНрдХрд░реНрд╖ рдмрдирд╛рдП рд╣реИрдВред
рдлрд┐рд░ рднреА, рдЕрдЧрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд░реВрдк рдореЗрдВ рдХреИрдкреНрдЪрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж reCaptcha рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдЙрдкрджреНрд░рд╡ рд╣реЛ рдЧрдпрд╛, рдЬреЛ рдкреЗрдЬ рдкрд░ рдЯрди
рдЬрдВрдХ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рдЕрднреА рднреА рдПрдХ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬреЛ рдореБрдЭреЗ рд╕реМ рдкреНрд░рддрд┐рд╢рдд рд╕реВрдЯ рдХрд░реЗрдЧрд╛ред ред рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдЖрдк рдХреБрдЫ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рддреЛ рд╕реНрд╡рдпрдВ рдХрд░реЗрдВред
рдпрд╣ рд▓реЗрдЦ рдПрдХ рд╕рд░рд▓ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдпреИрдВрдбреЗрдХреНрд╕ - рд╕реНрд╡рдЪреНрдЫ рд╡реЗрдм рдПрдкреАрдЖрдИ рдХреЗ рдкреВрд░реНрдг-рдЖрдзреБрдирд┐рдХ, рдЖрдзреБрдирд┐рдХ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдХреИрдкреНрдЪрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдЧрд╛ред рдФрд░ рдЬрдм рд╕реЗ рд╣рдордиреЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдирдпрд╛ рдХреИрдкреНрдЪрд╛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рддреЛ рд╣рдореЗрдВ рдЬрд░реВрд░рдд рд╣реИ:
рдпреИрдВрдбреЗрдХреНрд╕ рдПрдкреАрдЖрдИ - рдХреНрд▓реАрди рд╡реЗрдм ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреЗрд╢реА js рдХреЗ рдкреНрд░реЗрдорд┐рдпреЛрдВ рдХреЛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдореИрдВрдиреЗ
jQuery рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рд╣рдо рдпреИрдВрдбреЗрдХреНрд╕ рдПрдкреАрдЖрдИ рдХреА рдУрд░ рдореБрдбрд╝реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рд╣рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдХреИрдкреНрдЪрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдХ рд╡рд░реНрдЧ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ:
class_yandex_capcha.phpclass yandexCaptcha { static function get() { $lang = $_SESSION['lang']; if ($lang == "ru") { $type = "std"; } else { $type = "estd"; } $key = " API "; $xmlResponse = file_get_contents("http://cleanweb-api.yandex.ru/1.0/get-captcha?key=".$key."&type=".$type); $xml = simplexml_load_string($xmlResponse); return $xml->url; } }
рд╕рдм рдХреБрдЫ рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИ - рд╣рдо рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ GET рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВ:
$ рдХреБрдВрдЬреА - рдпреИрдВрдбреЗрдХреНрд╕ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА,
рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ$ рдкреНрд░рдХрд╛рд░ - рдХреИрдкреНрдЪрд╛ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЪрд░ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЧрдП рдорд╛рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпреИрдВрдбреЗрдХреНрд╕ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд╛рдЗрдЯ рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ - рдЗрд╕рд▓рд┐рдП, рднрд╛рд╖рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ:
std - рдирдВрдмрд░ рдФрд░ рд░реВрд╕реА рдореЗрдВ рдпрд╛рдВрдбреЗрдХреНрд╕ рд▓реЛрдЧреЛ, рдпрд╛
рдПрд╕реНрдЯрдб - рд╕рдВрдЦреНрдпрд╛ рднреА, рд▓реЗрдХрд┐рди рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд▓реЛрдЧреЛ рдХреЗ рд╕рд╛рдеред
YandexCaptcha :: get () рд╡рд┐рдзрд┐ рдЕрдм рдЫрд╡рд┐ рдкрддрд╛ рд▓реМрдЯрд╛рддреА рд╣реИ - рдпрд╣ рд╣рдорд╛рд░рд╛ рдХреИрдкреНрдЪрд╛ рд╣реИред
"рдХреИрдкреНрдЪрд╛ рдЪрд┐рддреНрд░ url" xml рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рдзрд┐ рдЕрдиреБрд░реЛрдз рдПрдХ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рджреЗрддрд╛ рд╣реИ -
рдХреИрдкреНрдЪрд╛ , рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдХрд╛рд░рдг рдереЛрдбрд╝рд╛ рд╕рд╛ рд╣реИ
рдХреИрдкреНрдЪрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рд╕рддреНрд░ рдореЗрдВ рдХрд╣реЗрдВред рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВ - рдореИрдВ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рд╕рдордЭрд╛рдКрдВрдЧрд╛ред
рдЬрдм рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреГрд╖реНрда рдХреЗ рдореЙрдбрд▓ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рддреЗ рд╣реИрдВ:
model_closed.php class model_closed extends model { function get_data() { $root = $_SERVER['DOCUMENT_ROOT']; $dataArray['language'] = parse_ini_file($root."/app/languages/".Route::$lang."_closed.ini"); $dataArray['base_href'] = $_SERVER['HTTP_HOST']; require_once($root."/app/core/class/class_yandex_capcha.php"); $dataArray['capcha_url'] = yandexCaptcha::get(); return $dataArray; } }
Get_data () рдкрджреНрдзрддрд┐ рдХреА рдЕрдВрддрд┐рдо рддреАрди рдкрдВрдХреНрддрд┐рдпрд╛рдВ рджреГрд╢реНрдп рдХреЛ рдХреИрдкреНрдЪрд╛ рдЫрд╡рд┐ рджреЗрддреА рд╣реИрдВ:
рдФрд░ рдпрд╣рд╛рдБ рджреГрд╢реНрдп рд╣реА рд╣реИ -
shut_view.php <div class="closedLoginForm"> <input type="text" class="loginInput" value="<?php echo $data['language']['login']; ?>"><br> <input type="password" class="passworldInput" value="<?php echo $data['language']['passworld']; ?>"> <div id="capcha" title="<?php echo $data['language']['reload_image']; ?>"> <img class="yandexCapchaImage" src="" alt="<?php echo $data['language']['capcha']; ?>"> </div> <input type="text" class="capchaInput" value="<?php echo $data['language']['capcha']; ?>"> <div class="loginButton"><div class="loginBottonInner"><?php echo $data['language']['loginBotton']; ?></div></div> <div class="loginError"></div> </div> <script type="text/javascript" src="/js/jquery.js"></script> <script type="text/javascript" src="/js/closed.js"></script> <script type="text/javascript" src="/js/login.js"></script>
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, html рдХреЛрдб рдореЗрдВ рдХреЛрдИ
рдлрд╝реЙрд░реНрдо рдЯреИрдЧ рдирд╣реАрдВ рд╣реИрдВ
, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐
рд╣рдо рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП AJAX рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ ред
рджреГрд╢реНрдп рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рдлрд╝реАрд▓реНрдб рд╣реИрдВ: рд▓реЙрдЧрд┐рди, рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рдХреИрдкреНрдЪрд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб, рдХреИрдкреНрдЪрд╛ рдЪрд┐рддреНрд░ рдФрд░ рд╕реНрд╡рдпрдВ рднреЗрдЬреЗрдВ рдмрдЯрдиред
рд╣рдо
рд▓реЙрдЧрд┐рди рдХреЗ рд░реВрдк рдореЗрдВ AJAX рдХреЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдлреЙрд░реНрдо рдЬрдорд╛ рдХрд░реЗрдВрдЧреЗ
рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб, рд▓реЗрдХрд┐рди рд╡рд╣ рдмрд┐рдВрджреБ рд╣реИ $(document).ready(function(){ var capchaStartText = $(".capchaInput").val(); var passworldStartText = $(".passworldInput").val(); function login() { var login = $(".loginInput"), passworld = $(".passworldInput"), capcha = $(".capchaInput"), buttontext = $(".loginBottonInner").html(), captchasrc = $(".yandexCapchaImage").attr("src"); var pos = captchasrc.indexOf("="); var key = captchasrc.substr(pos+1); $.ajax({ type: "POST", url: "/app/modules/module_login.php", dataType: "json", data: {login:login.val(), passworld:passworld.val(), captchaCode:key, captchaValue:capcha.val()}, beforeSend: function(){ $(".loginBottonInner").html("..."); } }).done(function(data){ if (data.captcha == 1 && data.login == 1) { location.reload(); } if (data.login == 0) { capchaRenew(); $(".loginBottonInner").html(buttontext); login.focus(); login.select(); passworld.val(passworldStartText); capcha.val(capchaStartText); $(".loginError").html(data.login_error); } if (data.captcha == 0 && data.login == 1) { capchaRenew(); $(".loginBottonInner").html(buttontext); capcha.val(capchaStartText); capcha.focus(); $(".loginError").html(data.captcha_error); } }); } function capchaRenew() { $.ajax({ type: "POST", data: {check:"ok"}, url: "/app/modules/module_capcha_renew.php" }).done(function(html) { $(".yandexCapchaImage").attr("src",html); console.log(html); }); } $("#capcha").click(function(){ capchaRenew(); $(".capchaInput").focus(); }); $(".loginBottonInner").click(function() { login(); }); $(window).keydown(function(eventObject){ if ($(".closedLoginForm input").is(":focus") == true) { if (eventObject.which == 13) { login(); } } }); });
рдЕрдм рд╣рдореЗрдВ рдХреИрдкреНрдЪрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "рднреЗрдЬреЗрдВ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдпрд╛ рдПрдВрдЯрд░ рдмрдЯрди (рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ) рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдлреЙрд░реНрдо рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рд╕реЗ, рд╣рдо рдХреИрдкреНрдЪрд╛ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рд╕рднреА рдбреЗрдЯрд╛ - рд▓реЙрдЧрд┐рди, рдкрд╛рд╕рд╡рд░реНрдб, рд╡рд░реНрдг рд╕реЗрдЯ рдФрд░ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рдерд╛ред - рдПрдХ рд╣реА
рдХреИрдкреНрдЪрд╛ рдкреИрд░рд╛рдореАрдЯрд░ (
yandexCaptcha :: get () рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВ)ред
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рд╣реА рдХреИрдкреНрдЪрд╛ рдЗрдирдкреБрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЬреЛ рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдХреИрдкреНрдЪрд╛ рдЫрд╡рд┐ URL рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреГрд╖реНрда рдкрд░ рдореМрдЬреВрдж рд╣реИред
рдпрд╛рдВрдбреЗрдХреНрд╕ рдЗрд╕реЗ рд╣рдо рд╕рднреА рдХреЛ рдПрдХ рд╣реА
yandexCaptcha :: get () рд╡рд┐рдзрд┐ рдореЗрдВ рджреЗрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЬреЛ рдХреБрдЫ рднреА рдмрдЪрд╛ рд╣реБрдЖ рд╣реИ рд╡рд╣ рдЗрдореЗрдЬ рдПрдбреНрд░реЗрд╕ рдХреЗ рдпреВрдЖрд░рдПрд▓ рд╕реЗ
рдХреИрдкреНрдЪрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ "рдЕрд▓рдЧ" рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рд╣рдо рдХрд░рддреЗ рд╣реИрдВред
рдореЙрдбреНрдпреВрд▓_login.php рдлрд╝рд╛рдЗрд▓ рдЬрд┐рд╕реЗ рд╣рдо AJAX рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рддреЗ
рд╣реИрдВ, рд▓реЙрдЧрд┐рди рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИ, рдореБрдЦреНрдп рд╡рд░реНрдЧ рдЬрд┐рд╕реЗ рд╣рдо рд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ,
рд╕рд╛рдЗрдЯрд▓реЙрдЧрд┐рди () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкрд░рд┐рдгрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИ,
рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рд▓реЙрдЧрд┐рди-рдкрд╛рд╕рд╡рд░реНрдб рд╕рдВрдпреЛрдЬрди рд╕рд╣реА рд╣реИ рдФрд░
рдХреИрдкреНрдЪрд╛ рдЗрдирдкреБрдЯ рдХреА
рд╢реБрджреНрдзрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рд╣реИ
ред echo Login::siteLogin($login, $passworld, $captchaCode, $captchaValue);
рддрд╛рдХрд┐ рдореЗрд░рд╛ рд▓реЗрдЦ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЗрд░реА рдпреЛрдЬрдирд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд▓рдВрдмрд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рд╢рд╛рд▓ рдЖрдХрд╛рд░ рддрдХ рдирд╣реАрдВ рдмрдврд╝рддрд╛ рд╣реИ, рдореИрдВ рдХреЗрд╡рд▓
рд▓реЙрдЧрд┐рди рдХрд╛ рд╡рд╣ рднрд╛рдЧ рджреЗ рджреВрдБрдЧрд╛
: рд╕рд╛рдЗрдЯрд▓реЙрдЧрд┐рди рд╡рд┐рдзрд┐ рдЬреЛ рдХреИрдкреНрдЪрд╛ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ:
class_login.phpрд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб class Login { static function siteLogin($login, $password, $captchaCode, $captchaValue) { $path = $_SERVER['DOCUMENT_ROOT']; session_start(); $langArray = parse_ini_file($path."/app/languages/".$_SESSION['lang']."_login.ini"); $login = htmlspecialchars($login); $password = htmlspecialchars($password); $json = Array(); $json['captcha'] = 0; $json['login'] = 0; $json['captcha_error'] = $langArray['captcha_error']; $json['login_error'] = $langArray['login_error']; $key = " API "; $response = file_get_contents("http://cleanweb-api.yandex.ru/1.0/check-captcha?key=".$key."&captcha=".$captchaCode."&value=".$captchaValue); if (strpos($response,"<ok")){ $json['captcha'] = 1; unset($json['captcha_error']); } require_once $path."/app/core/class/class_dbconnect.php"; $mysqli = dbconnect::connect(); $sql = "SELECT `id`,`login`,`passworld`,`rights` FROM `users` WHERE `login` = '".$login."'"; $qr = $mysqli->query($sql); $quant = $qr->num_rows; if ($quant <> 0) { $row = $qr->fetch_assoc(); if ($row['passworld'] == hash("whirlpool","super".$password."orgy")) { $json['login'] = 1; unset($json['login_error']); if ($json['login'] == 1 and $json['captcha'] == 1) {
* рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдФрд░ рдкреВрд░рд╛ рдХреЛрдб рджреЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рдкрд╛рдардХ рд╕рдордЭ рд╕рдХреЗрдВ рдХрд┐ рдкреИрд░ рдХрд╣рд╛рдБ рд╕реЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рдХреИрдкреНрдЪрд╛ рд╕рддреНрдпрд╛рдкрди рдХрд╛ рд╕рд╛рд░ рдлрд┐рд░ рд╕реЗ рдпреИрдВрдбреЗрдХреНрд╕ рдПрдкреАрдЖрдИ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рдЬреАрдИрдЯреА рдЕрдиреБрд░реЛрдз рд╣реИ;
рддрджрдиреБрд╕рд╛рд░ - рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓реЙрдЧрд┐рди / рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╣реА рд╕рдВрдпреЛрдЬрди рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ + рдХреИрдкреНрдЪрд╛ рдиреЗ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд┐рдпрд╛ - рд╣реБрд░реНрд░реЗ! рд╣рдордиреЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣
рд▓реЗрдЦ рдХрд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рд╣реЛрдЧрд╛ред рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдЕрднреА рднреА рдкрдврд╝ рд░рд╣реЗ рд╣реИрдВ - рдпрд╣ рд╕рдм рдЖрд╡реЗрджрди рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдХреИрдкреНрдЪрд╛ рджрд░реНрдЬ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЧрд▓рддреА рдХреА рд╣реИ, рдпрд╛ рдмрд╕ рдЪрд┐рддреНрд░ рдореЗрдВ рдкрд╛рда рдХреЛ рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ - рдЙрд╕реЗ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрд╢рд╛рд░реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИрддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдХреИрдкреНрдЪрд╛ рдЪрд┐рддреНрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреИрдкреНрдЪрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ - рддреЛ рдмрд╕ рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдЪрд▓реЛ
login.js рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рд╡рд╛рдкрд╕
рдЬрд╛рддреЗ рд╣реИрдВ , рдФрд░
capchaRenew () рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ
function capchaRenew() { $.ajax({ type: "POST", data: {check:"ok"}, url: "/app/modules/module_capcha_renew.php" }).done(function(html) { $(".yandexCapchaImage").attr("src",html); }); }
рдЗрд╕рд▓рд┐рдП - рд╣рдо рдмрд╕ рдореЙрдбреНрдпреВрд▓
рдореЙрдбреНрдпреВрд▓_рдХреИрдк_реНрд░реЗрдиреНрдпреВ.рдлрдкреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ
рдЬрд┐рд╕рдХрд╛ рдкреВрд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдиреАрдЪреЗ рдлреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЙрд╕реА
yandexCaptcha рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрдкреНрдЪрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
:: рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ () рд╡рд┐рдзрд┐ рдЬреЛ рд╣рдо рдкреГрд╖реНрда рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдирдИ рдЫрд╡рд┐ рдХрд╛ рдкрддрд╛ рджреЗрддреЗ рд╣реИрдВред
рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдХреИрдкреНрдЪрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реИред рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдПрдХ рд╣реА reCapcha рдХреЗ рд╡рд┐рдкрд░реАрдд - рдХреЛрдИ iframes рдирд╣реАрдВ рд╣реИрдВ, рд╕рднреА рдХреЛрдб рдмрд╣реБрдд рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИрдВ, рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд╣реИрдВред