2010-12-13 8 views
41

Von einer Admin-Seite, wenn der Benutzer gültig ist, sollte der Browser auf eine andere Seite gehen.Wie gehe ich mit Javascript von einer Seite zu einer anderen Seite?

Wenn ein Benutzer seinen Benutzernamen und sein Passwort eingibt und auf die Schaltfläche OK klickt, wird eine weitere Seite angezeigt und die Anmeldeseite wird automatisch geschlossen.

Wie kann ich das mit JavaScript machen?

+6

Während es ist nicht klar, genau das, was Sie wollen, Sie Javascript Login zu umgehen verwenden und Umleitung ist keine gute Idee, wie ein versierter Anwender kann so leicht einschränkt Bypass . – micmcg

Antwort

77

einfach um einen Browser mit Javascript zu umleiten:

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

So zu leiten und eine Form (dh Login-Daten) einreichen, erfordert keine javascript:

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

Als zusätzliche Anmerkung behandelt zumindest Safari dies: Sie müssen keine Domäne für die Skriptmethode angeben. Wenn sich Ihr Code also bereits auf "http: // example.com" befindet, würde einfach "window.location.href = 'new_url';" funktionieren. Dies ist besonders nützlich, wenn Ihr Code für mehrere Domänen verwendet wird, Sie jedoch immer den Benutzer auf denselben Unterpfad innerhalb der Domäne umleiten möchten, in der er bereits vorhanden ist. – ArtOfWarfare

5

Überprüfen, ob ein Benutzer ein Admin in Javascript führt zu Problemen, weil JavaScript-Code für jedermann sichtbar ist. Der Server ist derjenige, der NACH dem Anmeldevorgang den Unterschied zwischen einem Admin und einem normalen Benutzer erkennen und dann die neue Seite entsprechend generieren sollte.

Vielleicht ist es nicht das, was Sie versuchen, so zu tun, um Ihre Frage zu beantworten:

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

Sie nicht sanely auf Kunden abhängig Seite JavaScript, um festzustellen, ob Benutzerdaten korrekt sind. Der Browser (und der gesamte Code, der das ausführt) unterliegt der Kontrolle des Benutzers, nicht Sie, also ist es nicht vertrauenswürdig.

Der Benutzername und das Passwort müssen mit einem Formular eingegeben werden. Die OK-Schaltfläche wird eine Senden-Schaltfläche sein. Das Aktionsattribut muss auf eine URL verweisen, die von einem Programm verarbeitet wird, das die Anmeldeinformationen überprüft.

Dieses Programm könnte in JavaScript geschrieben werden, aber wie Sie darüber gehen, hängt davon ab, welche server side JavaScript engine Sie verwendeten. Beachten Sie, dass SSJS keine Mainstream-Technologie ist. Wenn Sie es also wirklich verwenden möchten, müssen Sie ein spezialisiertes Hosting verwenden oder Ihren eigenen Server verwalten.

(Ein halbes Jahrzehnt später und SSJS ist viel häufiger dank Node.js, es ist immer noch ziemlich spezialisiert).

Wenn Sie danach umleiten möchten, muss das Programm eine HTTP Location header ausgeben.

Beachten Sie, dass Sie überprüfen müssen, ob die Anmeldedaten OK sind (normalerweise durch Speichern eines Tokens, das nicht das eigentliche Passwort in einem Cookie ist), bevor Sie eine private Seite ausgeben. Andernfalls könnte jemand auf die privaten Seiten gelangen, wenn er die URL kennt (und somit das Anmeldesystem umgeht).

4

Die richtige Lösung, die ich bekommen ist

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

Hier wird die neue URL in der Apostroph gegeben.

5

die Sie interessieren,

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

Hier sample.html ist eine nächste Seite. Es wird auf die nächste Seite gehen.

1

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

Aber was, wenn Sie möchten, zu überprüfen, ob Benutzername und Passwort, ob leer oder nicht mit Hilfe von JavaScript und an die php senden in der Datenbank, ob Benutzer zu überprüfen. Sie können dies leicht nach diesem Code tun.

HTML-Formular -

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

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

überprüfen, ob Benutzer in der Datenbank mit 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

Für MVC-Entwickler, einen Browser mit Javascript zu umleiten:

window.location.href = "@Url.Action("Action", "Controller")"; 
Verwandte Themen