Javascript AJAX Логин не ведёт себя - PullRequest
0 голосов
/ 16 февраля 2012

Я создаю ajax-логин, и он работал, но по какой-то причине он перенаправляет меня на мою страницу обработки логина php. Код приведен ниже, и я использую jquery ajax для отправки своего запроса ajax. Странно то, что он, очевидно, не отправляет переменные, потому что моя страница не повторяет слово «успех». Буду признателен за любую помощь, а также будет ли это безопасно использовать?


Javascript (Jquery);

$('.mainlogin').submit(function() {
    var username = $('#main_username').val();
    var password = $('#main_pword').val();
    $.ajax({
        url: 'log.php',
        type: 'POST',
        data: {
            user: username,
            pass: password
            },
        success: function(response) {
            if (response == 'success') {
                    window.location.reload();
            } else {
                $('.logerror').fadeIn(250);
            }
        }
    });
    return false;
});

PHP;

<?php 
require_once('.conf.php');
$user = mysql_real_escape_string($_POST['user']);
$pass = mysql_real_escape_string($_POST['pass']);
//$remem = mysql_real_escape_string($_POST['remem']);
//$expire=time() + 60 * 60 * 24 * 30;

$result = mysql_query("SELECT * FROM TABLENAME WHERE username = '$user'");
while ($row = mysql_fetch_array($result)) {
if (sha1($user.$pass) == $row['pword']) {
    //setcookie('temp', $row['username']);
    session_start();
    $_SESSION['login'] = 1;
    $_SESSION['uname'] = $row['username'];
    $_SESSION['id'] = $row['id'];
    echo "success";
} 
}
?>

Большое спасибо !! Я не могу понять это и провел несколько проверок JavaScript, ни одна из которых не вызвала ошибку.

Ответы [ 3 ]

4 голосов
/ 16 февраля 2012

Является ли страница обработки входа значением атрибута действия вашей формы? Если это так, то кажется, что форма отправляется вместо того, чтобы вызывался ваш AJAX.

Вы тестируете в браузере, где вы можете увидеть ответ от вашего PHP-скрипта? В Chrome / WebKit есть сетевая вкладка, где вы можете просматривать ответы на запросы XHR (Ajax).

Вы можете попробовать:

$('.mainlogin').submit(function(e) {
    e.preventDefault();

как определение вашей анонимной функции, чтобы предотвратить ее отправку стандартным способом HTML.

1 голос
/ 16 февраля 2012

Я предполагаю, что где-то в Javascript есть ошибка, из-за которой Javascript не завершает работу, поэтому отправляет пользователя на страницу PHP.

Попробуйте проверить консоль браузера на наличие ошибок.

0 голосов
/ 16 февраля 2012

Ваш php подключен к базе данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...