我在使用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");
}
?>
任何帮助都会很棒。感谢。
答案 0 :(得分:0)
PHP脚本的第一行是标题。标题后停止执行脚本。尝试删除该行,然后首先回显您在服务器上获得的内容。
答案 1 :(得分:0)
php代码的第一行重定向到另一个页面。 javascript返回的结果将是重定向的页面内容,而不是代码的输出内容。
P.S。您的javascript代码存在安全问题,其他人可以轻松窃取密码。