ajax post方法和php

时间:2014-01-11 19:28:51

标签: php ajax post login

大家好,我在这里解释我的问题(就我而言,我没有找到任何有效的解决方案)。 在这里我链接我的文件:

progetto.html

<html> 
<head> 
    <script type="text/javascript" src="funzioni.js"></script>
    <title>Pagina iniziale</title>
</head>
<body align='center'>
    <p>Gymnasium</p>
    <p>icona</p>
    <form id="ajaxForm" name="ajaxForm">
        <table align="center">
            <tr>
                <td><label>Utente</label></td>
                <td><input type="text" name="user" id="user" value="" /></td>
            </tr>
            <tr>
                <td><label>Password</label></td>
                <td><input type="password" name="password" id="password" value="" /></td>
            </tr>
        </table>
        <input type="button" id="submit" name="submit" value="Accedi" onclick='submitForm()' />
    </form>
    <div id="risultato"></div>
</body>

javascript文件

function createXMLHttpRequestObject(){
if (window.XMLHttpRequest) { return new XMLHttpRequest(); }
if (window.ActiveXObject) { return new ActiveXObject(Microsoft.XMLHTTP); }
return null;

}

function submitForm(){
var ajax = createXMLHttpRequestObject();
ajax.onreadystatechange = function () {
                        if (ajax.readyState==4 && ajax.status==200){
                        var response = ajax.responseText;
                        document.getElementById("risultato").innerHTML = response;
                    }
                }
ajax.open("post", "ajaxLogin.php", true);
var data = "utente=" + document.getElementById('user').value + "&password=" + document.getElementById('password').value; 
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajax.send(data);

}

ajaxLogin.php

<?php
if (!isset($_POST["user"]) || !isset($_POST["password"])){
    die("Bad login");
}
$user = $_POST['user'];
$pwd = $_POST['password'];
if ( (($user == "angel") && ($pwd == "devil")) || (($user == "john") && ($pwd == "smith")) ){
    $response = "Benvenuto  " . $user;
    echo $response;
}

&GT;

问题是即使我使用正确的用户名和密码,我也总是会收到错误登录信息。 这是一个POST问题,我真的很难搞清楚解决方案。

1 个答案:

答案 0 :(得分:2)

这是您的数据:

var data = "utente=" + document.getElementById('user').value + "&password=" + document.getElementById('password').value;

这就是你要检查的内容:

if (!isset($_POST["user"]) || !isset($_POST["password"])){

您应该将utente更改为user或相反。在您的表单中,您也使用user,因此我建议您随处使用。

所以:

var data = "user=" + document.getElementById('user').value + "&password=" + document.getElementById('password').value;