0

我在使用基于会话的登录(使用 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 部分。

4

1 回答 1

1

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

data : {
  username : $("#username").val(),
  password : $("#password").val(),
  login : true,
}
于 2013-03-10T14:07:31.067 回答