Есть форма логина, работающая с помощью jquery. Для проверки введенных данных использую ajax. Наблюдаю следующую ошибку: При первом нажатии "вход в систему" окно логина скрывается, а в адресную строку добавляется /?#Не важно, что введено, если ввод не верный, все равно окно закрывается (а этого не должно быть). А работает все как нужно только при наличии этих символов О_о Листинг: Форма: | Код | <div id="login_area"> <div id="close_w"></div> <div class="login_area_inner"> <form id="login_form"> <div class="login_input_area"> <div class="login_text">Логин:</div><div class="login_input"><input id="login_input" type="text" size="30"></div> <div class="clear"></div> <div class="login_text">Пароль:</div><div class="login_input"><input id="password_input" type="password" size="30"></div> <div class="clear"></div> <div class="register_btn"> <a class="button_solid" href="#"><div class="button_solid_first">Регистрация</div><div class="button_solid_second"></div></a> </div> <div class="login_btn"> <a class="button_solid" href="#"><div class="button_solid_first">Вход в систему</div><div class="button_solid_second"></div></a> </div> <div class="login_ajax_img"> <img src="/desigin/images/ajax-loader-small.gif" alt="Загрузка..."> </div> <div class="login_ajax_text"> Аутентификация... </div> </div> </form> </div> </div>
|
JavaScript | Код | $(document).ready(function(){ $("#login_js_event").click(function(){ $("#login_area").fadeIn(200); }); $("#close_w").click(function(){ $("#login_area").fadeOut(100); }); (".login_btn > a").click(function(){ // Маленькая хитрость, чтобы была отправка формы и браузеры запоминали ввод $("form#login_form").submit(); return false; }); // Добавляем Энтер $('#login_input').keypress(function(e){ if(e.which == 13){ $('form#login_form').submit(); } }); $('#password_input').keypress(function(e){ if(e.which == 13){ $('form#login_form').submit(); } }); // При отправке формы $("#login_form").submit(function() { $(".login_ajax_img").fadeIn(100); $(".login_ajax_text").html("Аутентификация...").css("color","#000").fadeIn(100); $.get("/control_config.php", { ajax: "login", login:$("#login_input").val(), password:$("#password_input").val(), rand:Math.random() } ,function(data) { if (data == 1) { $(".login_ajax_text").html("Авторизация...").css("color","#2b8c00"); location.reload(true); } if (data == 0) { $(".login_ajax_img").hide(); $(".login_ajax_text").html("Логин или пароль введены не верно.").css("color","#c00"); } }); return fasle; }); $("#login_area").draggable({ cancel: ".login_area_inner" }); });
|
Дело явно не в php, но на всякий случай: | Код | //Логин if ($_GET['ajax'] == 'login') { if (isset($_GET['login']) && isset($_GET['password'])) { $login = $_GET['login']; $password = md5(md5($_GET['password'])); $query = " SELECT `id`,`login`,`rules`,`mail_check` FROM `user` WHERE `login`='{$login}' AND `password`='{$password}' LIMIT 1 "; $sql = mysql_query($query); // если такой пользователь нашелся if (mysql_num_rows($sql) == 1) { $row = mysql_fetch_assoc($sql); $_SESSION['user_id'] = $row['id']; $_SESSION['user_login'] = $row['login']; $_SESSION['user_rules'] = $row['rules']; echo 1; } else echo 0; } else echo 0; }
|
потыкать палочкой в баг можно тут: http://iternia.ru/
|