2010-12-13 21 views
41

Ze strony administratora, jeśli użytkownik jest ważny, przeglądarka powinna przejść na inną stronę.Jak przejść z jednej strony na drugą za pomocą javascript?

Gdy użytkownik wprowadza swoją nazwę użytkownika i hasło, a następnie klika przycisk OK, wyświetlana jest następna strona, a strona logowania jest automatycznie zamykana.

Jak mogę to zrobić z JavaScript?

+6

Chociaż jej nie wiadomo dokładnie, co chcesz, za pomocą javascript, aby obsługiwać logowanie i przekierowanie nie jest to świetny pomysł, jak bystry użytkownik może łatwo obejść ogranicza w ten sposób . – micmcg

Odpowiedz

77

po prostu przekierować przeglądarkę przy użyciu javascript:

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

Aby przekierować i przesłać formularz (tj danych logowania), nie wymaga JavaScript:

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

Jako dodatkową uwagę, przynajmniej Safari obsługuje to: nie musisz określać domeny dla metody skryptowej. Więc jeśli twój kod był już na 'http: // example.com', po prostu' window.location.href = 'new_url'; 'działałby. Jest to szczególnie przydatne, jeśli twój kod będzie używany w wielu domenach, ale zawsze chcesz, aby użytkownik został przekierowany na tę samą pod-ścieżkę w domenie, w której już jest. – ArtOfWarfare

5

Sprawdzanie, czy użytkownik ma uprawnienia administratora w javascript prowadzi do kłopotów, ponieważ kod javascript jest widoczny dla każdego. Serwer to ten, który powinien odróżnić administratora od zwykłego użytkownika PO procesie logowania, a następnie odpowiednio wygenerować nową stronę.

Może to nie to, co staramy się robić tak, aby odpowiedzieć na pytanie:

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

Ty nie może zdrowo zależą stronie klienta JavaScript, żeby ustalić, czy poświadczenia użytkownika są prawidłowe. Przeglądarka (i cały kod, który ją wykonuje) jest pod kontrolą użytkownika, nie ciebie, więc nie jest godna zaufania.

Nazwę użytkownika i hasło należy wprowadzić za pomocą formularza. Przycisk OK będzie przyciskiem przesyłania. Atrybut action musi wskazywać adres URL, który będzie obsługiwany przez program, który sprawdza poświadczenia.

Ten program może być napisany w języku JavaScript, ale sposób, w jaki to zrobisz, zależy od używanej wersji. Zauważ, że SSJS nie jest technologią głównego nurtu, więc jeśli naprawdę chcesz z niego korzystać, musisz użyć wyspecjalizowanego hostingu lub administrować własnym serwerem.

(Pół dekady później, a SSJS jest znacznie bardziej powszechne dzięki Node.js, nadal jest dość specjalistyczny).

Jeśli chcesz później przekierować, program musi emitować numer HTTP Location header.

Pamiętaj, że musisz sprawdzić, czy dane logowania są w porządku (zwykle przechowując w pliku cookie token, który nie jest faktycznym hasłem) przed wygenerowaniem dowolnej strony prywatnej. W przeciwnym razie każdy mógłby dostać się do prywatnych stron, znając adres URL (a więc omijając system logowania).

4

Prawidłowe rozwiązanie, które ja dostać jest

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

Oto nowy adres URL jest podany wewnątrz pojedynczego cytatu.

5

Spróbuj tego,

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

Tutaj sample.html jest na następnej stronie. Przejdzie do następnej strony.

1

łatwiejsza metoda jest window.location.href = "http://example.com/new_url";

Ale co zrobić, jeśli chcesz sprawdzić, czy nazwa użytkownika i hasło, czy pusta lub nie za pomocą JavaScript i wysłać go do php, aby sprawdzić, czy użytkownik w bazie danych. Możesz to łatwo zrobić po tym kodzie.

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

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

sprawdzić, czy użytkownik w bazie danych przy użyciu 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

Dla programistów MVC przekierować przeglądarkę za pomocą javascript:

window.location.href = "@Url.Action("Action", "Controller")"; 
Powiązane problemy