Knowledge Map

location.replace 본문

WEB/JAVASCRIPT

location.replace

2016. 5. 18. 15:55

php로 만들어진 회원가입 페이지를 테스트 하다가 회원 가입 완료 화면에서 새로고침을 하면

동일 아이디로 무한 회원 가입이 되는 버그를 포착했다.


이것은 이전페이지에서 post로 보낸 값을 완료 페이지에서 include를 통해서 php파일이 DB에 값을 보내서 저장시키기 때문에 일어나는거였다. 이걸 이용해서 버튼 하나를 더 누르면 로그인이 자동으로 되면서 결제 페이지까지 가는 거였지만 회원 가입이 중복으로 되는 것은 꽤나 치명적이고 게다가 동일 아이디가 2개 이상이면 따로 작동을 못하게 만들어놨기 때문에 이건 고쳐야 했다.


어떻게 할까 생각하다가 form action을 그 문제의 php 로 연결하고 그 후에 replace를 이용해서 완료 페이지로가도록 만들었다.

더 깔끔한 처리도 있었겠지만 여튼 이렇게 했더니 중복 입력되지 않고 잘 되는 것을 알수 있었다.



출처; http://www.opencode.co.kr/bbs/board.php?bo_table=javascript_tips&wr_id=62

자바스크립트에서 페이지 이동 시킬때 location.href를 많이 사용하지만 location.replace 메세드도 종종 이용된다.
두가지 모두 같은 동작을 하는거 같지만 실제로는 아래와 같은 차이점이 있다.

location.href는 객체의 속성이며, loaction.replace()는 메서드(함수)로 작동된다.
href는 페이지를 이동하는 것이기 때문에 뒤로가기 버튼을 누른경우 이전 페이지로 이동이 가능하지만,
replace는 현재 페이지를 새로운 페이지로 덮어 씌우기 때문에 이전 페이지로 이동이 불가능하다.

href는 일반적인 페이지 이동시 이용을 하면 되고,
replace의 경우는 이전페이지로 접근이 필요없는경우 보안상 덮어씌우는 것도 괜찮을듯 하다.














'WEB > JAVASCRIPT' 카테고리의 다른 글

커스텀 오른쪽 마우스 메뉴  (0) 2016.05.26
javascript 변수타입확인, 반올림, 날짜 설정, 삼항연산자  (0) 2016.05.24
아코디언  (0) 2016.04.18
DOM 접근  (0) 2016.03.13
자바스크립트 용어  (0) 2016.02.28
Comments