2010-12-13 5 views
41

На странице администратора, если пользователь действителен, браузер должен перейти на другую страницу.Как перейти с одной страницы на другую с помощью javascript?

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

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

+6

Пока его не совсем ясно, что вы хотите, с помощью JavaScript для обработки входа и перенаправление не отличная идея, как смекалка пользователь может легко перепускной ограничивает, как это , – micmcg

ответ

77

Чтобы просто перенаправляет браузер с помощью 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> 
+3

В качестве дополнительной заметки, по крайней мере, Safari обрабатывает это: вам не нужно указывать домен для метода сценариев. Поэтому, если ваш код уже был на http: // example.com, то просто будет работать 'window.location.href = 'new_url';'. Это особенно полезно, если ваш код будет использоваться для нескольких доменов, но вы всегда хотите, чтобы пользователь перенаправлялся к одному и тому же подпункту в том домене, в котором они уже находятся. – ArtOfWarfare

5

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

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

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

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

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

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

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

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

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

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 дается внутри одной цитаты.

5

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

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

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

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

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

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

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