2
$("#btnok").click(function(){
var pass = $('#inputpass').val();
$.ajax({
url: 'passpro.php',
type: 'post',
data: {'pass': pass},
success: function(data) {
$('#info').text(data);
}
});
});
上記は正常です。パスワードが存在する場合はindex.php
にリダイレクトし、そうでない場合はメッセージをエコーします。条件付きリダイレクトが機能しません。
これが正常に動作rowCount == 0
場合passpro.php
include ("params.php");
include ("$config");
$pass = $_POST['pass'];
try {
$stmt = $db->prepare('SELECT id FROM passwords WHERE pass = :pass');
$stmt->execute(array(
':pass' => $pass
));
if ($stmt->rowCount() > 0) {
header("Location: index.php"); // this line doesn't work
exit();
}
else{
echo ('UNKNOWN PASSWORD');
}
}
catch(PDOException $e) {
echo $e->getMessage();
}
、すなわち私がメッセージUNKNOWN PASSWORD
を得たが、私が得たものを代わりにリダイレクトのrowCount > 0
場合 - index.php
のhtmlコードが#info
divの内側に書かれました!
を説明してきたので、私は説明を入れていませんでしたPHPの 'header()'はあなたがajax呼び出しを行うときにそのようにリダイレクトします。代わりに結果(json?)を返し、それに基づいてjavascriptでリダイレクトを行う必要があります。 – jeroen
ヘッダーを使用してAJAXリクエストに何もしない場合は、代わりにJSコードを使用してlocation.hrefをリセットする必要があります – Lucero