私はmysqlデータベースにユーザ名とパスワードの存在を検証するPHPコードを書いています。このphpは、ログインページ(index.html)のsigninボタンをクリックすると呼び出されます。私のPHPコードは以下の通りです:PHPを使用して別のhtmlページに移動
<?php
require_once 'dbconfig.php';
// Unescape the string values in the JSON array
$logindata = stripcslashes($_POST['pLogData']);
// Decode the JSON array
$logindata = json_decode($logindata,TRUE);
// now $tableData can be accessed like a PHP array
$user_email = $logindata['user'];
$user_password = $logindata['pass'];
//First lets get the username and password from the user
$query = $db_conn->prepare("SELECT * FROM tblUsers WHERE email=:user_email LIMIT 1");
$query->execute(array(':user_email'=>$user_email));
$userRow=$query->fetch(PDO::FETCH_ASSOC);
if($query->rowCount() > 0) {
if(password_verify($upass, $userRow['pass'])) {
$_SESSION['user_session'] = $userRow['userid'];
if($userRow['userid'] == 1) {
header("Location: adminPanel.html");
} else {
header("Location: main_dashboard.html");
}
// return true;
} else {
header("Location: index.html");
// return false;
}
}
?>
AJAX呼び出しのコードは次のようになります。これは、PHPで設定したナビゲーションが起きていないことを除いて正常に動作している
function login(username, passwd) {
var loginData = {
'user': username,
'pass': passwd
};
loginData = $.toJSON(loginData);
$.ajax({
type: "POST",
url: "loginValidate.php",
data: "pLogData=" + loginData,
success: function(msg) {
console.log(msg);
// return value stored in msg variable
}
});
}
。私は間違いがどこにあるか把握することができません。移動しなければならないhtml全体がコンソールに印刷されています。
ご協力いただければ幸いです。
〜ajaxこれは機能しません。 'file name'を返し、javascriptで' window.location = filename'を使います。フォームを提出し、もしuncussessfullが 'main_dashboard.html'のそれ以外のものにリダイレクトするならば。 –
@Suchit、あなたの提案はうまくいきましたが、ユーザー名とパスワードを検証するためにサーバーにヒットする必要があります。これはPHPを使用して簡単です。 htmlをphpファイルに置き換えると、切り替えることができます。私はなぜそれがHTMLファイルのために切り替わっていないのか知りたい。 –
.htmlはPHPコードを認識しません.AJAXを使用する場合は、検証後にファイル名を返し、リダイレクトに使用します。 –