Как перейти с одной страницы на другую, используя JavaScript? - PullRequest
60 голосов
/ 13 декабря 2010

Со страницы администратора, если пользователь действителен, браузер должен перейти на другую страницу.

Когда пользователь вводит свое имя пользователя и пароль, затем нажимает кнопку OK, затем отображается другая страница и страница входа автоматически закрывается.

Как я могу сделать это с помощью JavaScript?

Ответы [ 9 ]

99 голосов
/ 13 декабря 2010

Чтобы просто перенаправить браузер с помощью 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>
9 голосов
/ 13 декабря 2010

Вы не можете разумно зависеть от клиентской стороны JavaScript для определения правильности учетных данных пользователя.Браузер (и весь код, который его выполняет) находится под контролем пользователя, а не вас, поэтому он не заслуживает доверия.

Имя пользователя и пароль необходимо вводить с помощью формы.Кнопка ОК будет кнопкой отправки.Атрибут action должен указывать на URL-адрес, который будет обрабатываться программой, которая проверяет учетные данные.

Эта программа может быть написана на JavaScript, но то, как вы это сделаете, будет зависеть от того, какой JavaScript на стороне серверадвигатель , который вы использовали.Обратите внимание, что SSJS не является основной технологией, поэтому, если вы действительно хотите ее использовать, вам придется использовать специализированный хостинг или администрировать свой собственный сервер.

(Полвека спустя, и SSJS стал более распространенным благодаря Node.js, он все еще довольно специализированный).

Если вы хотите перенаправить впоследствии, тогда программе нужно выдать HTTP Location header .

Обратите внимание, что вынужно проверить, что учетные данные в порядке (обычно сохраняя токен, который не является действительным паролем, в cookie) перед выводом любой личной страницы.В противном случае любой мог получить доступ к личным страницам, зная URL (и, таким образом, обходя систему входа в систему).

6 голосов
/ 13 декабря 2010

Проверка того, что пользователь является администратором в javascript, приводит к проблемам, потому что код javascript виден всем. Сервер - это тот, кто должен определить разницу между администратором и обычным пользователем ПОСЛЕ процесса входа в систему, а затем соответственно сгенерировать новую страницу.

Может быть, это не то, что вы пытаетесь сделать, чтобы ответить на ваш вопрос:

window.location.href="<the page you are going to>";
5 голосов
/ 27 мая 2015

Попробуйте,

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

Здесь sample.html - следующая страница.Он перейдет на следующую страницу.

4 голосов
/ 14 декабря 2010

Правильное решение, которое я получаю:

<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 указан внутри одинарной кавычки.

1 голос
/ 03 сентября 2016

Более простой метод: 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);
?>
0 голосов
/ 11 июля 2019

Попробуйте это:

window.location.href = "http://PlaceYourUrl.com";
0 голосов
/ 20 апреля 2018

надеюсь, это поможет:

window.location.href = '/url_after_domain';

0 голосов
/ 05 января 2018

Для разработчиков MVC, чтобы перенаправить браузер, используя JavaScript:

window.location.href = "@Url.Action("Action", "Controller")";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...