私はWebファイルサーバー(クラウド)を作成しようとしています。私はindex.php
に基本フォームのパスワード認証を入れることに決めました。ユーザーがパスワードを入力してボタンをクリックすると、JSはそのパスワードをindex.php
に送信し、それが正しいかどうかを判断します。ページを更新せずにPHPとJSでリダイレクト
もしそうなら、index.phpはユーザをfiles.php
にリダイレクトします。そうでなければ、ページをリフレッシュします。 リダイレクトとリフレッシュはheader();
で行われますが、これを使用してブラウザの[ネットワーク]タブを見ると、files.php
が届きますが、ロードされません(index.php
のままです)。私はその理由がヘッダが何らかのテキストの後に送られていると確信しています(それはヘッダーです)。
現在のページを送信した後、ユーザーのブラウザをページにリダイレクトするにはどうすればよいですか? JSにそれを依頼する必要がありますか?それではどうですか? JSは
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php
echo '
<h1>Hello World</h1>
<form>
<input name="password" type="text"></input>
<button onclick=authClick() class="test" type="button"></button>
</form>
';
print_r($_POST);
if ($pass == "123123") {
header("Location: files.php");
}
?>
<script src="scripts/main.js"></script>
</body>
</html>
そしてここに行く:ここに私のindex.phpである
window.open(response.data.url, '_blank');
を次のようにあなたがそれを直接開く場合のJsを使用して
function authClick() {
var editBox = document.querySelector('input');
var xhr = new XMLHttpRequest();
var body = 'password='+encodeURIComponent(editBox.value);
xhr.open("POST","/index.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send(body);
}
var myHeading = document.querySelector('h1');
myHeading.textContent = 'nigga';
b = document.querySelector('button');
b.setAttribute('content', 'test content');
b.setAttribute('class', 'btn');
b.innerHTML = 'submit';
あなたは書式を使用していますか?いくつかのコードを提供できますか? – Ivan
リダイレクトコードが表示されますか? – Deckerz
ajaxまたはcURLが必要な場合があります – bdalina