2010-12-13 25 views
41

À partir d'une page d'administration si l'utilisateur est valide, alors le navigateur devrait aller à une autre page.Comment passer d'une page à l'autre en utilisant javascript?

Lorsqu'un utilisateur entre son nom d'utilisateur et son mot de passe, puis clique sur le bouton OK, une autre page s'affiche et la page de connexion est automatiquement fermée.

Comment puis-je faire cela avec JavaScript?

+6

Alors que son ne sait pas exactement ce que vous voulez, en utilisant javascript pour gérer la connexion et la redirection est pas une bonne idée, en tant qu'utilisateur averti peut facilement contourner restreint comme celui-ci . – micmcg

Répondre

77

Pour rediriger simplement un navigateur en utilisant javascript:

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

Pour rediriger et soumettre un formulaire (c.-à-données de connexion), ne nécessite pas javascript:

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

En guise de note supplémentaire, Safari gère au moins ceci: il n'est pas nécessaire de spécifier un domaine pour la méthode de script. Donc si votre code était déjà 'http: // example.com', alors simplement' window.location.href = 'new_url'; 'fonctionnerait. Ceci est particulièrement utile si votre code est utilisé sur plusieurs domaines, mais vous voulez toujours que l'utilisateur soit redirigé vers le même sous-chemin dans le domaine où il se trouve déjà. – ArtOfWarfare

5

vérifier qu'un utilisateur est un admin dans javascript conduit à des problèmes parce que le code javascript est visible pour tout le monde. Le serveur est celui qui doit faire la différence entre un administrateur et un utilisateur régulier APRES le processus de connexion, puis générer la nouvelle page en conséquence.

Peut-être que ce n'est pas ce que vous essayez de le faire pour répondre à votre question:

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

Vous ne pouvez pas dépendent sanely de côté client JavaScript afin de déterminer si les informations d'identification de l'utilisateur sont corrects. Le navigateur (et tout le code qui l'exécute) est sous le contrôle de l'utilisateur, pas vous, donc il n'est pas fiable.

Le nom d'utilisateur et mot de passe doivent être entrés en utilisant un formulaire. Le bouton OK sera un bouton d'envoi. L'attribut action doit pointer vers une URL qui sera gérée par un programme qui vérifie les informations d'identification.

Ce programme pourrait être écrit en JavaScript, mais comment vous y prendre dépend de quel server side JavaScript engine vous utilisiez. Notez que SSJS n'est pas une technologie grand public, donc si vous voulez vraiment l'utiliser, vous devrez utiliser un hébergement spécialisé ou admin votre propre serveur.

(Une demi-décennie plus tard et SSJS est beaucoup plus commun grâce à Node.js, il est quand même assez spécialisé). Si vous souhaitez effectuer une redirection, le programme doit émettre un HTTP Location header. Notez que vous devez vérifier que les informations d'identification sont correctes (généralement en stockant un jeton, qui n'est pas le mot de passe réel, dans un cookie) avant de sortir une page privée. Sinon, n'importe qui pourrait accéder aux pages privées en connaissant l'URL (et donc en contournant le système de connexion).

4

La bonne solution que je reçois est

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

Voici donc le nouveau URL dans la citation unique.

5

Essayez ceci,

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

Ici sample.html est une page suivante. Cela ira à la page suivante.

1

méthode est plus facile window.location.href = "http://example.com/new_url";

Mais si vous voulez vérifier si le nom d'utilisateur et mot de passe si vide ou non l'utilisation de JavaScript et l'envoyer au php pour vérifier si l'utilisateur dans la base de données. Vous pouvez le faire facilement en suivant ce code.

formulaire 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 vérification si l'utilisateur dans la base de données en utilisant 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

Pour les développeurs MVC, pour rediriger un navigateur en utilisant javascript:

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