web-dev-qa-db-ja.com

javascriptを使用してあるページから別のページに移動する方法は?

ユーザーが有効な場合、管理ページからブラウザは別のページに移動する必要があります。

ユーザーがユーザー名とパスワードを入力し、[OK]ボタンをクリックすると、別のページが表示され、ログインページが自動的に閉じられます。

JavaScriptでこれを行うにはどうすればよいですか?

62
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>
101
David Tang

cannotclient sideJavaScriptに完全に依存して、ユーザー資格情報が正しいかどうかを判断します。ブラウザ(およびそれを実行するすべてのコード)は、ユーザーではなくユーザーの制御下にあるため、信頼できません。

ユーザー名とパスワードはフォームを使用して入力する必要があります。 [OK]ボタンは送信ボタンになります。 action属性は、資格情報をチェックするプログラムによって処理されるURLを指している必要があります。

このプログラムはJavaScriptで作成できますが、その方法は、使用している サーバー側JavaScriptエンジン に依存します。 SSJSは主流の技術ではないため、本当に使用したい場合は、専用のホスティングを使用するか、独自のサーバーを管理する必要があります。

(10年半後、SSJSはNode.jsのおかげではるかに一般的になりましたが、まだかなり専門化されています)。

後でリダイレクトする場合、プログラムは HTTP Location header を発行する必要があります。

プライベートページを出力する前に、資格情報が(通常、実際のパスワードではないトークンをCookieに格納することで)OKであることを確認する必要があることに注意してください。そうしないと、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 = "http://PlaceYourUrl.com";
0
Love Kumar

これが役立つことを願っています:

window.location.href = '/url_after_domain';

0
Abdul Wahed

MVC開発者の場合、javascriptを使用してブラウザーをリダイレクトするには:

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