programing

자바 스크립트를 사용하여 한 페이지에서 다른 페이지로 이동하는 방법은 무엇입니까?

nasanasas 2020. 11. 27. 08:12
반응형

자바 스크립트를 사용하여 한 페이지에서 다른 페이지로 이동하는 방법은 무엇입니까?


관리자 페이지에서 사용자가 유효한 경우 브라우저는 다른 페이지로 이동해야합니다.

사용자가 자신의 사용자 이름과 암호를 입력하고 확인 버튼을 클릭하면 다른 페이지가 표시되고 로그인 페이지가 자동으로 닫힙니다.

JavaScript로 어떻게 할 수 있습니까?


자바 스크립트를 사용하여 브라우저를 리디렉션하려면 :

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

양식 (예 : 로그인 세부 정보)을 리디렉션하고 제출하려면 자바 스크립트가 필요하지 않습니다.

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

당신은 할 수 올바로 수행에 따라 클라이언트 측 사용자 자격 증명이 올바른지 확인하는 자바 스크립트. 브라우저 (및이를 실행하는 모든 코드)는 귀하가 아닌 사용자가 제어하므로 신뢰할 수 없습니다.

사용자 이름과 비밀번호는 양식을 사용하여 입력해야합니다. 확인 버튼은 제출 버튼이됩니다. 작업 속성은 자격 증명을 확인하는 프로그램에서 처리 할 URL을 가리켜 야합니다.

이 프로그램은 JavaScript로 작성 될 수 있지만, 사용하는 방법 은 사용 중인 서버 측 JavaScript 엔진 에 따라 다릅니다 . SSJS는 주류 기술이 아니므로 실제로 사용하려면 전문 호스팅을 사용하거나 자체 서버를 관리해야합니다.

(반년 후에 SSJS는 Node.js 덕분에 훨씬 더 일반적이지만 여전히 상당히 전문화되어 있습니다).

나중에 리디렉션하려면 프로그램이 HTTP Location 헤더 를 내 보내야합니다 .

개인 페이지를 출력하기 전에 자격 증명이 정상인지 확인해야합니다 (일반적으로 실제 암호가 아닌 토큰을 쿠키에 저장하여). 그렇지 않으면 누구나 URL을 알고 로그인 시스템을 우회하여 비공개 페이지에 액세스 할 수 있습니다.


사용자가 자바 스크립트에서 관리자인지 확인하면 자바 스크립트 코드가 누구나 볼 수 있기 때문에 문제가 발생합니다. 서버는 로그인 후 관리자와 일반 사용자의 차이점을 알려주고 그에 따라 새 페이지를 생성해야하는 서버입니다.

질문에 답하기 위해 그렇게하려는 것이 아닐 수도 있습니다.

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

이 시도,

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

여기에 sample.html다음 페이지입니다. 다음 페이지로 이동합니다.


내가 얻는 올바른 해결책은

<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은 작은 따옴표 안에 제공됩니다.


더 쉬운 방법은 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>

자바 스크립트 유효성 검사

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);
?>

MVC 개발자의 경우 javascript를 사용하여 브라우저를 리디렉션하려면 :

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

이것이 도움이되기를 바랍니다.

window.location.href = '/url_after_domain';


이 시도:

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

참고 URL : https://stackoverflow.com/questions/4426184/how-to-go-from-one-page-to-another-page-using-javascript

반응형