XMLHttpRequest を使用して JavaScript によって呼び出されたときに、php ファイル (login.php) の実行に問題があります。URLから実行するとphpファイルは正常に動作しますが、XMLHttpRequestによって呼び出されないようです。私はこれが初めてで、これを機能させるのに苦労しています。
JavaScript ファイルは、ユーザー名とパスワードを取得し、それらをパラメーターとして URL の php ファイルに送信します。Php ファイルのログは、正しい組み合わせについてデータベースをチェックします。
私のJavascriptファイル:
関数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");
}
?>
どんな助けでも素晴らしいでしょう。ありがとう。