2010-12-13 44 views
41

Desde una página de administrador si el usuario es válido, entonces el navegador debe ir a otra página.¿Cómo pasar de una página a otra usando javascript?

Cuando un usuario ingresa su nombre de usuario y contraseña, luego hace clic en el botón Aceptar, luego se visualiza otra página y la página de inicio de sesión se cierra automáticamente.

¿Cómo puedo hacer esto con JavaScript?

+6

Aunque no está claro exactamente lo que quiere, usando javascript para manejar inicio de sesión y la redirección no es una gran idea, como un usuario experto puede fácilmente derivación restringe como esto . – micmcg

Respuesta

77

Para simplemente redirigir un navegador usando javascript:

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

Para redirigir y presentar un formulario (es decir, datos de acceso), no requiere javascript:

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

Como nota adicional, al menos Safari maneja esto: no necesita especificar un dominio para el método de escritura. Entonces, si su código ya estaba en 'http: // example.com', simplemente' window.location.href = 'new_url'; 'funcionaría. Esto es particularmente útil si su código se usará en múltiples dominios, pero siempre quiere que el usuario sea redirigido al mismo subtrayecto dentro del dominio en el que ya están. – ArtOfWarfare

5

Comprobación de que un usuario es un administrador en javascript provoca problemas porque el código javascript es visible para cualquiera. El servidor es quien debe notar la diferencia entre un administrador y un usuario habitual DESPUÉS del proceso de inicio de sesión y luego genera la página nueva en consecuencia.

Tal vez eso no es lo que está tratando de hacerlo a responder a su pregunta:

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

Usted no puede confiar en la sensatez lado del cliente JavaScript para determinar si las credenciales del usuario son correctos. El navegador (y todo el código que lo ejecuta) está bajo el control del usuario, no usted, por lo que no es confiable.

El nombre de usuario y la contraseña deben ingresarse mediante un formulario. El botón Aceptar será un botón de enviar. El atributo de acción debe apuntar a una URL que será manejada por un programa que verifica las credenciales.

Este programa podría escribirse en JavaScript, pero la forma de hacerlo dependerá de qué server side JavaScript engine esté usando. Tenga en cuenta que SSJS no es una tecnología convencional, por lo que, si realmente desea utilizarla, deberá utilizar un hosting especializado o administrar su propio servidor.

(Media década después y SSJS es mucho más común gracias a Node.js, aunque todavía es bastante especializado).

Si desea redireccionar después, entonces el programa necesita emitir un HTTP Location header.

Tenga en cuenta que debe verificar que las credenciales estén correctas (generalmente almacenando un token, que no es la contraseña real, en una cookie) antes de imprimir una página privada. De lo contrario, cualquier persona podría acceder a las páginas privadas conociendo la URL (y omitiendo así el sistema de inicio de sesión).

4

La solución correcta que me sale es

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

Aquí la nueva URL se da dentro de la comilla simple.

5

Prueba de esto,

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

Aquí sample.html es una página siguiente. Pasará a la siguiente página.Método

1

Más fácil es window.location.href = "http://example.com/new_url";

Pero lo que si desea comprobar si usuario y contraseña ya sean vacíos o no el uso de JavaScript y enviarlo a la php para comprobar si el usuario en la base de datos. Puedes hacer esto fácilmente siguiendo este código.

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

de verificación si usuario en la base de datos utilizando 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

Para los desarrolladores de MVC, para redirigir el navegador usando javascript:

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