これはおそらく疑問な質問ですが、AJAXで応答を受け取った場合、php
ファイルでヘッダー機能を実行できますか?ヘッダーPHPがJavaScriptからのAJAX呼び出しの後に動作しない
私の場合、AJAX(ページの再読み込みを避けるため)を介してPHPスクリプト(カスタムエラー番号がテスト用にハードコードされています)からエラーコードを取得し、JSとの関連メッセージを警告するログインフォームがありますユーザー名とパスワードが正しいです、私はPHPのクッキーを作成し、リダイレクトしたいです。しかし、私はAJAXはデータを取得することしか許さないと思いますよね?
これは私のコードです:
JS
$.ajax({
type: 'POST',
url: 'validate.php',
data: $this.serialize(),
success: function(response) {
var responseCode = parseInt(response);
alert(codes[responseCode]);
}
});
PHP
if(empty($user)){
echo 901;
}else{
if(hash_equals($user->hash, crypt($password, $user->hash))){
setCookie(etc...); //this is
header('admin.php'); //what is not executing because I'm using AJAX
}else{
echo 902;
}
}
質問は、まったく意味がありませんが、私は「couldn申し訳ありませんしてください場合解決策を見つける。前もって感謝します!
編集:複雑なものを避けるためにコードの残りの部分は含めませんでしたが、アンサーを与えるために必要な場合はすぐに追加します。 (:
ので、成功コードを取得する際にJSでリダイレクトし、そして右の前にPHPスクリプトにクッキーを設定します応答コードをエコーしますか? –
基本的には、条件付きのPHPを、私があなたがajaxリクエストに基づいていたいと思うようにすることはできません。 JavaScriptが手に入ると、PHPはすでに動いています。 (これはすべてのコードが同じファイル内にあることを前提としています) –
成功レスポンスコードを送る前にPHPスクリプトからクッキーを設定しようとしましたが、クッキーを作成してJSでリダイレクトしました。ありがとう!最後の質問ですが、ユーザー名をCookieに保存してから、ユーザー名(データベースからコードを取り出してユーザー名を使用して)に基づいてデータを表示することはできますか、それとも安全でないのですか?ユーザーはCookieにアクセスして、ユーザー名で間違ったCookieを作成し、そのユーザーからのすべてのデータにアクセスできますか? –