2

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");
}
?>

どんな助けでも素晴らしいでしょう。ありがとう。

4

2 に答える 2

0

PHP スクリプトの最初の行はヘッダーです。スクリプトの実行は、ヘッダーの後停止されます。その行を削除してみて、最初にサーバーで取得したものをエコーし​​てください..

于 2012-11-17T02:50:47.890 に答える
0

PHP コードの最初の行が別のページにリダイレクトされます。JavaScript が返す結果は、コードの出力コンテンツではなく、リダイレクトされたページ コンテンツになります。

PSあなたのjavascriptコードには、他の人がパスワードを簡単に盗むことができるというセキュリティ上の問題があります.

于 2012-11-17T03:01:47.317 に答える