php - 使用 AJAX 和 PHP 进行身份验证

标签 php mysql ajax

我制作了一个简单的程序来使用 AJAX 和 PHP 模拟身份验证。以下是我的代码。它将重定向到“/?”但什么也没发生。我尝试使用 checkLogin(); return false;onclick事件,但没有成功。

index.php

<script type="text/javascript" src="validation.js"></script>
<form>
    <p>
        <label>Username <abbr title="Required">*</abbr></label>
        <input id="usernamelogin" type="text" value="" />
    </p>
    <p>
        <label>Password <abbr title="Required">*</abbr></label>
        <input id="passwordlogin" type="text" value="" />
    </p>                
    <p>
        <input id="login" type="submit" value="Login" onclick="checkLogin()" />
    </p>
</form>

validation.js

function checkLogin(){
    var u = document.getElementById("usernamelogin").value;
    var p = document.getElementById("passwordlogin").value;

    if(window.XMLHttpRequest){
        xmlhttp = new XMLHttpRequest();
    }
    else{
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onReadystatechange = function(){
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
            if(xmlhttp.responseText == u){
                alert(':)');
            }
            else{
                alert(':(');
            }
        }
    }

    xmlhttp.open("GET", "login.php?u=" + u + "&p=" + p, true);
    xmlhttp.send(); 
}

login.php

<?php
    $u = $_GET['u'];
    $p = $_GET['p'];

    $host = 'localhost';
    $user = 'root';
    $pass = '';
    $db = 'db';

    $con = mysql_connect($host, $user, $pass);
    if(!$con) die("Could not connect: " . mysql_error());

    mysql_select_db($db, $con);
    $query = "select username from login where username = '" . $u . "' and password = '" . $p . "'";
    $result = mysql_query($query);
    $row = mysql_fetch_array($result);
    echo $row['username'];
    mysql_close($con);
?>

最佳答案

我更改了以下代码

xmlhttp.onReadystatechange

xmlhttp.onreadystatechange

并且它有效。并在输入 type="submit" 中使用 onclick="checkLogin(); return false;"

关于php - 使用 AJAX 和 PHP 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15513031/

相关文章:

php - MySql 在选择查询中返回不正确的日期值

MySQL 错误 1442 : Cannot update a table in a trigger/stored procedure

javascript - jQuery DataTables - 访问所有行数据

php - 将 PHP 添加到 Apache Web 服务器中?

PHP 数据库查询没有及时完成?

php - 如何使用PHP从源代码中隐藏图像路径

php - 上传文件然后将其复制到两个不同的目录?

php - 如何在一张 "loop"中获取属于用户的所有图像

javascript - 带有箭头键的谷歌风格自动完成

javascript - AJAX GET 简单 PHP 多个变量