2017-08-29 46 views
0

我試圖製作一個web文件服務器(一個雲)。我決定在index.php上提供基本的表單密碼驗證。當用戶輸入密碼並單擊該按鈕時,JS將該密碼發送到index.php,並確定它是否正確。在不刷新頁面的情況下重定向到PHP和JS

如果是,則index.php將用戶重定向到files.php。如果不是,則刷新頁面。 我知道重定向和刷新是通過header();完成的,但是當我使用它並在我的瀏覽器中觀看「網絡」選項卡時,它會收到files.php,但不會加載它(保持在index.php)。我確信原因是在一些文本之後發送了頭文件(好吧,它是頭文件)。

當前頁面發送後,如何將用戶的瀏覽器重定向到某個頁面?我應該讓JS去做嗎?那怎麼樣?這是我的index.php:

<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> 

這裏而來的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'; 
+0

您是否正在使用FORM?你能提供一些代碼嗎? – Ivan

+0

我們可以看到重定向代碼嗎? – Deckerz

+0

您可能需要ajax或cURL – bdalina

回答

1

你是全光照g Ajax,而Ajax的要點是在不加載新頁面的情況下發出HTTP請求

既然你想加載一個新頁面:刪除JavaScript。使用普通的HTML提交按鈕執行常規表單提交。

+0

謝謝!這工作。 – danshat

0

透過JS如果你想直接打開它,你可以按照如下

window.open(response.data.url, '_blank'); 

寫當前標籤

window.open(response.data.url); 
相關問題