83

如果用户是有效的,那么浏览器应该从管理页面转到另一个页面。

当用户输入他的用户名和密码,然后单击“确定”按钮后,将显示另一个页面并自动关闭登录页面。

我怎样才能用 JavaScript 做到这一点?

4

10 回答 10

142

使用 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>
于 2010-12-13T06:03:38.420 回答
10

不能完全依赖客户端JavaScript 来确定用户凭据是否正确。浏览器(以及执行该浏览器的所有代码)都在用户的控制之下,而不是你,所以它是不可信的。

用户名和密码需要使用表格输入。OK 按钮将是一个提交按钮。action 属性必须指向一个 URL,该 URL 将由检查凭据的程序处理。

这个程序可以用 JavaScript 编写,但如何进行取决于您使用的服务器端 JavaScript 引擎。请注意,SSJS 不是主流技术,因此如果您真的想使用它,则必须使用专门的托管或管理您自己的服务器。

(五年后,由于 Node.js,SSJS 变得更加普遍,但它仍然相当专业)。

如果你想在之后重定向,那么程序需要发出一个HTTP Location 标头

请注意,在输出任何私人页面之前,您需要检查凭据是否正常(通常通过在 cookie 中存储不是实际密码的令牌)。否则,任何人都可以通过知道 URL(从而绕过登录系统)进入私人页面。

于 2010-12-13T06:39:18.793 回答
9

试试这个,

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

sample.html是下一页。它将转到下一页。

于 2015-05-27T12:02:52.250 回答
7

验证用户是 javascript 中的管理员会导致麻烦,因为任何人都可以看到 javascript 代码。服务器应该在登录过程之后区分管理员和普通用户,然后相应地生成新页面。

也许这不是您试图回答您的问题的方法:

window.location.href="<the page you are going to>";
于 2010-12-13T06:10:23.087 回答
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 在单引号内给出。

于 2010-12-14T04:31:43.027 回答
2

试试这个:

window.location.href = "http://PlaceYourUrl.com";
于 2019-07-11T07:23:52.827 回答
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验证-

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);
?>
于 2016-09-03T07:18:12.417 回答
1

希望这会有所帮助:

window.location.href = '/url_after_domain';

于 2018-04-19T21:22:05.053 回答
1

还有一些重定向的方法:

  • location.replace("http://example.com");
  • location.href = "http://example.com"
  • window.location = "http://example.com"
  • window.location.href = "http://example.com"
于 2021-09-04T10:40:50.500 回答
0

对于 MVC 开发人员,使用 javascript 重定向浏览器:

window.location.href = "@Url.Action("Action", "Controller")";
于 2018-01-05T08:10:44.897 回答