web-dev-qa-db-fra.com

Comment passer d'une page à une autre en utilisant javascript?

À partir d'une page d'administration si l'utilisateur est valide, le navigateur doit accéder à une autre page.

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 se ferme automatiquement.

Comment puis-je faire cela avec JavaScript?

52
SIVAKUMAR.J

Pour simplement rediriger un navigateur en utilisant javascript:

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

Pour rediriger ET soumettre un formulaire (c'est-à-dire les informations de connexion), aucun javascript n'est requis:

<form action="/new_url" method="POST">
   <input name="username">
   <input type="password" name="password">
   <button type="submit">Submit</button>
</form>
93
David Tang

Vous ne pouvez pas faire confiance à JavaScript côté client pour déterminer si les informations d'identification de l'utilisateur sont correctes. Le navigateur (et tout le code qui l'exécute) est sous le contrôle de l'utilisateur, et non de vous. Il n'est donc pas digne de confiance.

Le nom d'utilisateur et le mot de passe doivent être entrés à l'aide d'un formulaire. Le bouton OK sera un bouton de soumission. L'attribut d'action doit pointer sur 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 la façon de procéder dépend du type de moteur JavaScript côté serveur que 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 administrer votre propre serveur.

(Une demi-décennie plus tard et SSJS est beaucoup plus répandu grâce à Node.js, il est quand même assez spécialisé).

Si vous souhaitez rediriger ensuite, le programme doit émettre un en-tête d'emplacement HTTP .

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 générer une page privée. Sinon, n'importe qui pourrait accéder aux pages privées en connaissant l'URL (et en contournant ainsi le système de connexion).

9
Quentin

La vérification qu'un utilisateur est un administrateur en javascript crée des problèmes, car le code javascript est visible par quiconque. Le serveur est celui qui doit faire la différence entre un administrateur et un utilisateur régulier APRÈS 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 faire pour répondre à votre question:

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

Essaye ça,

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

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

5
Vinay Podili

La solution correcte 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>

Ici, la nouvelle URL est indiquée dans la citation simple.

4
SIVAKUMAR.J

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

Mais que se passe-t-il si vous voulez vérifier si le nom d'utilisateur et le mot de passe sont vides ou non, et envoyez-les au php pour vérifier si l'utilisateur est dans la base de données. Vous pouvez le faire facilement en suivant ce code.

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

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

vérifie si l'utilisateur de la base de données utilise 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

Essaye ça:

window.location.href = "http://PlaceYourUrl.com";
0
Love Kumar

espérons que cela aiderait:

window.location.href = '/url_after_domain';

0
Abdul Wahed

Pour les développeurs MVC, rediriger un navigateur à l'aide de javascript:

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