从xmlhttprequest调用时,php文件未运行

时间:2012-11-17 02:44:14

标签: php javascript ajax

我在使用XMLHttpRequest通过javascript调用时运行的php文件(login.php)出现问题。当我从url运行它时,php文件工作正常,但似乎没有被XMLHttpRequest调用。我是新手,并且正努力让这个工作。

javascript文件只获取用户名和密码,并将它们作为参数发送到url中的php文件。 Php文件记录检查数据库是否正确组合。

我的Javascript文件:

function logIn(){

if (window.XMLHttpRequest)
{
    xmlhttp = new XMLHttpRequest();
}
var usename = document.getElementById("userName").value;
var password = document.getElementById("password").value;

var url = "login.php?q=" + usename + "&x=" + password;
xmlhttp.open("POST", url, false);
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlenclosed');
xmlhttp.onreadystatechange = function() {
                        if (xmlhttp.readyState == 4){
                            alert("GOOD");
                        }}
xmlhttp.send(url);
alert(url + xmlhttp.status);
}

function logInClick(){
    logIn();
}

window.onload = function() {
    document.getElementById("AboutMe").onclick=aboutMessage;
    document.getElementById("ContactMe").onclick=contactMessage;
    document.getElementById("submitButton").onclick=logInClick;
}

我的Php文件:

 <?php
$host="localhost";
$username="root";
$password="";
$db_name="website";
$tbl_name="users";

mysql_connect("$host","$username","$password")or die("Cannot Connect");
mysql_select_db("$db_name")or die("Cannot Select DB");

$inputUserID=$_POST['q'];
$inputPassword=$_POST['x'];
//$encrpytedPassword=md5($inputPassword);

$inputUserID = stripslashes($inputUserID);
$inputPassword = stripslashes($inputPassword);
$inputUserID = mysql_real_escape_string($inputUserID);
$inputPassword = mysql_real_escape_string($inputPassword);

$sql = "SELECT * FROM $tbl_name WHERE userID='$inputUserID' and Password='$inputPassword'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if ($count==1){

    session_start();
    $_SESSION['userID']=$inputUserID;
    //change this at some point
    header("location:regularUserLoggedIn.html");

} else {
    header("location:www.yahoo.com");
}
?>

任何帮助都会很棒。感谢。

2 个答案:

答案 0 :(得分:0)

PHP脚本的第一行是标题。标题后停止执行脚本。尝试删除该行,然后首先回显您在服务器上获得的内容。

答案 1 :(得分:0)

php代码的第一行重定向到另一个页面。 javascript返回的结果将是重定向的页面内容,而不是代码的输出内容。

P.S。您的javascript代码存在安全问题,其他人可以轻松窃取密码。