Я пытаюсь упорядочить свою систему входа в систему, используя ajax для обработки спины и формирования запросов к серверу.Я хочу отправить свои данные формы на страницу PHP, а затем вернуть true / false и «Недостаточно данных», если правильные параметры не были переданы.
Моя проблема в том, что мой запрос AJAX не отправляетсяданные, которые я даю для отправки.
Вот моя функция JavaScript:
function confirm_login()
{
val_UName = document.login_form.username.value;
val_Pwd = document.login_form.password.value;
var result = null;
var scriptUrl = "login_confirm.php";
$.ajax({
url: scriptUrl,
type: 'post',
data: ({username : val_UName, password : val_Pwd}),
dataType: 'html',
async: false,
success: function(data) {
result = data;
}
});
result = result.split('|');
if(result[1] == 'true')
window.location = "index.php";
else
alert('Could not log you in!\n\n'+result[0]);
}
Эта функция вызывается в событии onclick кнопки отправки в форме.Теперь я использовал инструменты отладки в Chrome, и я ЗНАЮ, что val_UName и val_Pwd получают значения формы.Так что это определенно пробой между здесь и login_confirm.php
Просто для полноты, вот что происходит в login_confirm.php (я пропустил строки, которые соединяются с БД и закрывают соединение):
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
if($username == '' || $password == '')
echo 'Not Enough Data|';
$login_query = "SELECT * FROM users WHERE u_name = '$username' AND pwd = '$password'";
$result = mysql_query($login_query);
$result_rows = mysql_num_rows($result);
if($result_rows > 0)
{
session_start();
$row = mysql_fetch_assoc($result);
$_SESSION['loggedin'] = true;
$_SESSION['uname'] = $row['u_name'];
$_SESSION['uID'] = $row['pkid'];
$_SESSION['email'] = $row['email'];
$_SESSION['roleID'] = $row['fk_roleid'];
echo 'true';
}
else
{
echo 'false';
}
Кто-нибудь знает, что здесь происходит, или видел что-нибудь подобное раньше?
PS.Я даже пытался перейти на использование GET, и это все еще не работает ...