私は前もってクライアント側のデータを送信していないことを確認したが、エラー報告を有効にしたが、何も起こっていない。PHPヘッダ(リダイレクトしない)、リダイレクトページのHTMLのみを投稿する
これは検証時にリダイレクトを使用する単純なログインスクリプトです。
<?php
include_once "database-handler2.php";
require "password.php";
$UserName = $_POST["name"];
$Password = $_POST["pass"];
if(isset($UserName))
{
$query = "SELECT Password FROM users WHERE Username='$UserName'";
$hashed_password = mysqli_query($connection, $query);
while ($row = mysqli_fetch_row($hashed_password))
{
$res = $row[0];
}
if(password_verify($Password, $res)) {
// Show Errors
error_reporting(E_ALL);
ini_set('display_errors','On');
// Redirect
header('Location:http://example.com/ex/index.php', true);
die('redirect');
}
}
その他の付属のPHPに余分な空白などがないことを確認しました。成功関数は何もしません.AJAXを使用すると、alert()またはdebug.log()を有効にしてPHPのレスポンスの成功メッセージが表示されたら、ページからプリントアウトしますそのHTMLの下にエラーやその他の情報を入れずにHTMLにリダイレクトしようとしています。
Javascriptコード:
$('#submitButton').click(function()
{
var userName = document.getElementById("user").value;
var pass = document.getElementById("pass").value;
$.ajax({
url: '/handlers/login-handler.php',
type:'POST',
data:
{
name: userName,
pass: pass
},
success: function(msg)
{
alert(msg);
}
});
});
私は警告(MSG)を取る場合ということに注意してください。ボタンをクリックした場合よりも何も起こりません。
AJAXからの応答を読み取る場合リダイレクトがリダイレクトされます。代わりに何が起こると思いますか? – Barmar
AJAXはページ自体をリロードすることはありません。 AJAXリクエストの後にリダイレクトする場合は、Javascriptコードでリダイレクトする必要があります。 – Barmar
PHPをリダイレクトする場所からページをリロードする場合は、なぜAJAXを使用していますか?通常のフォーム提出を使用します。 – Barmar