2010-12-13 289 views
41

如果用戶有效,則從管理頁面開始,瀏覽器應該轉到其他頁面。如何從一個頁面到另一個頁面使用JavaScript?

當用戶輸入他的用戶名和密碼,然後單擊確定按鈕,然後顯示另一個頁面,登錄頁面自動關閉。

我該如何用JavaScript做到這一點?

+6

雖然它不清楚你想要什麼,用javascript來處理登錄和重定向是不是一個偉大的想法,作爲一個精明的用戶可以很容易地繞過限制這樣的。 – micmcg 2010-12-13 06:36:01

回答

77

要使用JavaScript簡單地重定向瀏覽器:

window.location.href = "http://example.com/new_url"; 

重定向並提交形式(即登錄信息),不需要的javascript:

<form action="/new_url" method="POST"> 
    <input name="username"> 
    <input type="password" name="password"> 
    <button type="submit">Submit</button> 
</form> 
+3

作爲一個額外的說明,至少Safari處理這個問題:您不需要爲腳本方法指定一個域。所以如果你的代碼已經在'http:// example.com'上,那麼只需'window.location.href ='new_url';'就可以工作。如果您的代碼將用於多個域,但是您始終希望將用戶重定向到它們所在域中的相同子路徑,則此功能特別有用。 – ArtOfWarfare 2015-03-21 12:36:52

5

驗證,用戶是管理員javascript會導致麻煩,因爲任何人都可以看到JavaScript代碼。服務器是應該在登錄過程之後告訴管理員和普通用戶之間的區別,然後相應地生成新頁面的人。

也許這不是你正在嘗試做這樣回答你的問題:

window.location.href="<the page you are going to>"; 
8

不能三立取決於客戶端的JavaScript以確定是否用戶憑據是正確的。瀏覽器(以及執行該操作的所有代碼)都在用戶的控制之下,而不是你自己,所以它不值得信任。

用戶名和密碼需要用表格輸入。確定按鈕將是一個提交按鈕。 action屬性必須指向將由檢查證書的程序處理的URL。

這個程序可以用JavaScript編寫,但你怎麼去取決於你使用的是哪個server side JavaScript engine。請注意,SSJS不是主流技術,所以如果你真的想使用它,你將不得不使用專門的託管或管理你自己的服務器。

(半年後,由於Node.js,SSJS更爲常見,但它仍然相當專業化)。

如果你想在之後重定向,那麼程序需要發出一個HTTP Location header

請注意,在輸出任何專用頁面之前,您需要檢查憑據是否正常(通常通過在Cookie中存儲令牌,而不是實際密碼)。否則,任何人都可以通過知道URL來訪問私人頁面(並繞過登錄系統)。

4

正確的解決方案,我得到的是

<html> 
     <head> 
     <script type="text/javascript" language="JavaScript"> 
        function clickedButton() 
      { 

       window.location = 'new url' 

      } 
      </script> 
     </head> 

     <form name="login_form" method="post"> 
      .................. 
      <input type="button" value="Login" onClick="clickedButton()"/> 
     </form> 
</html> 

在這裏,新的URL是單引號內給出。

5

試試這個,

window.location.href="sample.html"; 

這裏sample.html是下一個頁面。它會進入下一頁。

1

簡單的方法是window.location.href = "http://example.com/new_url";

但是,如果你想檢查用戶名和密碼是否爲空或不使用JavaScript,並將其發送到PHP來檢查用戶是否在數據庫中的內容。遵循此代碼,您可以輕鬆完成此操作。

HTML表單 -

<form name="myForm" onsubmit="return validateForm()" method="POST" action="login.php" >   
    <input type="text" name="username" id="username" /> 
    <input type="password" name="password" id="password" /> 
    <input type="submit" name="submitBt"value="LogIn" /> 
</form> 

的JavaScript validation-

function validateForm(){ 
    var uname = document.forms["myForm"]["username"].value; 
    var pass = document.forms["myForm"]["password"].value; 

    if((!isEmpty(uname, "Log In")) && (!isEmpty(pass, "Password"))){ 

     return true; 
    }else{ 
     return false; 
    } 
} 

function isEmpty(elemValue, field){ 
    if((elemValue == "") || (elemValue == null)){ 
     alert("you can not have "+field+" field empty"); 
     return true; 
    }else{ 
     return false; 
    } 
} 

檢查,如果用戶在數據庫中使用PHP

<?php 
    $con = mysqli_connect("localhost","root","1234","users"); 

    if(mysqli_connect_errno()){ 
     echo "Couldn't connect ".mysqli_connect_error(); 
    }else{ 
     //echo "connection successful <br />"; 
    } 

    $uname_tb = $_POST['username']; 
    $pass_tb = $_POST['password']; 

    $query ="SELECT * FROM user"; 
    $result = mysqli_query($con,$query); 

    while($row = mysqli_fetch_array($result)){ 
     if(($row['username'] == $uname_tb) && ($row['password'] == $pass_tb)){ 
      echo "Login Successful"; 
      header('Location: dashbord.php'); 
      exit(); 
     }else{ 
      echo "You are not in our database".mysqli_connect_error(); 
     } 
    } 
    mysqli_close($con); 
?> 
0

對於MVC開發人員,使用JavaScript重定向瀏覽器:

window.location.href = "@Url.Action("Action", "Controller")"; 
相關問題