it-roy-ru.com

Как перейти с одной страницы на другую, используя JavaScript?

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

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

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

52
SIVAKUMAR.J

Чтобы просто перенаправить браузер с помощью 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>
93
David Tang

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

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

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

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

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

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

9
Quentin

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

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

window.location.href="<the page you are going to>";
6
Mircea Nistor

Попробуй это,

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

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

5
Vinay Podili

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

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

4
SIVAKUMAR.J

Более простой метод - 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);
?>
1
Blasanka

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

window.location.href = '/url_after_domain';

0
Abdul Wahed

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

window.location.href = "@Url.Action("Action", "Controller")";
0
Ifeanyilawrence