Yauhen
Новичок
Помогите пожалуйста найти ошибку в коде.
Итак у нас есть два скрипта: login.tpl и check.php, когда я передаю заведомо ошибочные данные из login.tpl на check.php по средством JQUERY, не возникает ошибки, а если данные правильные - авторизация проходит успешно.
Итак, у нас есть страница авторизации с использованием JQUERY login.tpl
и php скрипт проверки check.php
т.е. после проверки скрипт check.php устанавливает значение case для switch(data), например 1 и тогда должна выводится ошибка, например: Некорректно введён E-Mail, а этого не происходит.
В чём моя ошибка? Может быть я чего-то не знаю... помогите пожалуйста.
Итак у нас есть два скрипта: login.tpl и check.php, когда я передаю заведомо ошибочные данные из login.tpl на check.php по средством JQUERY, не возникает ошибки, а если данные правильные - авторизация проходит успешно.
Итак, у нас есть страница авторизации с использованием JQUERY login.tpl
PHP:
<h2><?=$this->pagename ?></h2>
<div id='log_content'>
<center>
<div id='log_error' style='display: none;margin-bottom: 10px;border: none;padding: 5px;padding-bottom: 3px;box-shadow:0px 3px 3px rgba(255,0,0,0.3);-webkit-box-shadow:0px 3px 3px rgba(255,0,0,0.3);-moz-box-shadow:0px 3px 3px rgba(255,0,0,0.3);-o-box-shadow:0px 3px 3px rgba(255,0,0,0.3);'>
<img src='<?=$this->tpldir ?>images/error_mini.png' width=24 height=24 align=left style='padding-right: 10px;'><p id='log_errort' style='text-align: left;'>
</p>
</div>
<table width=400px style='border: none;'>
<tr style='height: 30px;'>
<td align=left style='border: none;'>
<label>E-Mail:</label></td>
<td align=center style='border: none;'>
<input type='text' name='email' id='log_email'></td>
</tr>
<tr style='height: 30px;'>
<td align=left style='border: none;'>
<label>Пароль:</label></td>
<td align=center style='border: none;'>
<input type='password' name='pass' id='log_pass'></td>
</tr>
<tr style='height: 30px;'>
<td align=left style='border: none;'>
</td>
<td align=center style='border: none;font-weight: bold;'>
<input type='submit' value='Авторизоваться' style='background: none;border: 1px solid #ccc;padding: 3px;' onClick='go_login();'></td>
</tr>
</table>
</div></center>
<script>
function go_login()
{
$('#log_msg').fadeOut();
var log_error;
var log_email=$('#log_email').val();
var log_pass=$('#log_pass').val();
$('#log_error').fadeOut(1000, function() {
$.ajax({
type: 'POST',
url: 'index.php?page=check',
data: 'check=log&log_email='+log_email+'&log_pass='+log_pass,
success: function(data){
switch(data)
{
case '1': $('#log_errort').html('Некорректно введён E-Mail'); break;
case '2': $('#log_errort').html('Некорректно введён пароль'); break;
case '3': $('#log_errort').html('Пользователь с E-Mail '+log_email+' не зарегистрирован'); break;
case '4': $('#log_errort').html('Неверно введён пароль'); break;
default:
$('#log_errort').html(); $('#log_error').fadeOut(); var log_error=1;
$('#log_content').fadeOut(1000, function(){ $('#log_content').html('<center><img src="<?=$this->tpldir ?>images/okay.png"><br>Вы успешно авторизовались!</center><a class="close" href="#close_join"></a>');var delay = 3000;
setTimeout("document.location.href='/account'", delay);
});$('#log_content').fadeIn(1000);
break;
};
}
});
});
if(!log_error){ $('#log_error').fadeIn(7000);}else{
var delay = 2000;
setTimeout("document.location.href='/account'", delay);
}
}
</script>
PHP:
<?
if($_POST['check']=='log')
{
#e-mail
if(!filter_var($_POST['log_email'],FILTER_VALIDATE_EMAIL))
{
print '1';
exit;
}
#синтаксис пароля
if(!preg_match("/^[a-zA-Z0-9]+$/",$_POST['log_pass']))
{
print '2';
exit;
}
if(!$DATABASE->SelectRow("SELECT * FROM `users` WHERE `email`='".$_POST['log_email']."'"))
{
print '3';
exit;
}
if(!$DATABASE->SelectRow("SELECT * FROM `users` WHERE `email`='".$_POST['log_email']."' AND `pass`='".md5($_POST['log_pass']."x2")."'"))
{
print '4';
exit;
}
$id=$DATABASE->SelectRow("SELECT * FROM `users` WHERE `email`='".$_POST['log_email']."' AND `pass`='".md5($_POST['log_pass']."x2")."'");
$_SESSION['id']=$id['id'];
$_SESSION['login']=$id['name'];
}
?>
В чём моя ошибка? Может быть я чего-то не знаю... помогите пожалуйста.