基于会话的登录系统 - 通过AJAX发出警告

时间:2013-03-10 13:29:38

标签: php javascript jquery ajax session

我遇到基于会话的登录问题(使用PHP,HTML和CSS实现)。到现在为止还挺好。现在我想要在输入错误时出现警告。首先,我刚刚创建了第二页,并附加了警告。但是最好在AJAX中实现它(可能使用jQuery)。但现在我有一个问题。由于我已经实现了AJAX部分,我无法登录。每次出现警告时。当我删除AJAX请求一切正常。似乎不再调用php验证部分。但我不知道为什么。这是代码:

这是验证的一部分(loginscript.php)。登录表单的名称为loginform,submit.button的名称为login。

else if (isset( $_POST['login'] )) 
{
    $username = $_POST['username'];
    $password = $_POST['password'];

    $clean_username = strip_tags(stripslashes(mysql_real_escape_string($username)));

    $clean_password = (strip_tags(stripslashes(mysql_real_escape_string($password))));

    $hash_password = saltedHash($clean_password, $clean_username);

    $sql = mysql_query("SELECT * FROM $loginTable WHERE $attUsername = '$clean_username' AND $attPassword = '$hash_password'");

    if (mysql_num_rows($sql) == 1) 
    {
        $_SESSION['logged'] = true;
        echo 'correct';
        header('refresh:2;url=ajax/cmapp.php');
        exit;
    }
}

显示的部分不起作用,因为我使用它:

$(document).ready(function()
{
$("#tr1").hide();
/* sendung formular abfangen */
$("#loginform").submit(function() {
                                /* ajax objekt zum aufruf & versand an das skript
    'name' und 'email' sind in der data-zeile die variablen für das php-skript */
    $.ajax({
        type: "POST",
        url: "loginscript.php",
        data: "username=" + $("#username").val() + "&password=" + $("#password").val(),
        success: function(msg)
        {
            if (msg == 'correct')
                {
                    alert("hjlkjl")
                    window.location='ajax/cmapp.php';
                }
            else
                {
                    $("#tr1").hide().load("message.html").fadeIn(0);
                }

每次执行else部分。

1 个答案:

答案 0 :(得分:1)

您的data值应包含login变量,否则PHP脚本将不会输入条件。并且由于您使用POST,因此可以将对象用作data

data : {
  username : $("#username").val(),
  password : $("#password").val(),
  login : true,
}