私はWeb開発を初めて使いました。AJAX経由で呼び出されたPHPヘッダ()が正しく動作しません。
今、私はサイトのログイン機能に取り組んでいます。私はJavascript/AJAXを使用してユーザー名とパスワードを取得し、それをPHPファイルに送信してMYSQLデータベースで検証しました。それは私がしようとしていることです。
私の質問はなぜheader()関数が正しく機能しないのですか?
$query = "SELECT * from user WHERE username = '$uname' AND password = md5('$pass');";
$ret = mysql_query($query) or die(mysql_error());
if(!$ret) {
$msg = "Invalid query " . mysql_error() . "\n";
$msg .= "Whole query " . $query;
die($msg);
}
$userid = -1;
while($row = mysql_fetch_array($ret)) {
$userid = $row["ID"];
}
$cnt = mysql_num_rows($ret);
if($cnt == 1) {
session_start();
$_SESSION["userid"] = $userid;
$_SESSION["uname"] = $uname;
echo "You have logged in successfully!";
header("Location: profile.php");
} else {
echo "Wrong Username/Password";
}
そして、ここでのJavascript(AJAX機能)のためだ:私は彼女がプロフィールページにリダイレクトされ、ユーザログイン(profile.php)
はここでPHP(login.php)の抜粋だ後にしたいです:
var obj;
var url = "login.php";
var params = "uname=" + document.getElementsByName("uname")[0].value + "&pass=" + document.getElementsByName("pass")[0].value;
if(window.XMLHttpRequest) { // Major browsers
obj = new XMLHttpRequest();
obj.open("POST",url,true);
obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
obj.setRequestHeader("Content-length", params.length);
obj.setRequestHeader("Connection", "close");
obj.onreadystatechange = function() {
if(obj.readyState == 4) {
if(obj.status == 200) {
// success
} else {
alert("Problem in returned data" + "Error status=" + obj.status);
}
}
}
obj.send(params);
XMLHttpRequestオブジェクトはプロパティーを持っていますので、ステータスと読み取り値を確認する必要はありません:) – user3105607