개발 Q&A

제목 form submit 이후 새로고침 방지 어떻게 하시나요?
카테고리 기타
글쓴이 마PD 작성시각 2018/01/15 15:52:21
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 34745   RSS

입력받는 화면에서 데이터 입력 후 submit.

정상적으로 데이터 입력받아 처리 후 해당 페이지를 계속 띄워놓고 있다가 브라우저가 자동으로 하는 새로고침이나, 담당자 실수로 새로고침 혹은 다른데 갔다가 뒤로가기로 인해 2번씩 데이터를 입력하는 경우가 발생하는데요.

이전에는 시간값을 넘겨서 너무 오래되었을땐 팅겨내는 방법을 사용했습니다만 뭔가 깔끔하질 않아서요 ;;

구글링을 해보니 자바스크립트를 쓰라는 방법도 있고, 중간에 세션값으로 넘기고 리다이렉트 시켜서 처리 후 세션을 초기화 시키라는 방법이 있던데...

이것도 뭔가 좀 개운치가 않아서요. 제가 생각했던 방법보다는 더 훌륭해보이는데...

혹시나 더 좋은 방법이 없을까 해서 질문글을 올리게 됩니다.

 

 

요약

1. form 을 통해 데이터 전송.

2. 정상적으로 데이터를 넘겨받아 처리 완료

3. 완료 페이지 새로고침 할 경우 재입력되는 것을 막을 방법은?

 다음글 config upload.php 데이터 읽어오기 (2)
 이전글 api 호출 분산 처리 (2)

댓글

배강민 / 2018/01/15 16:35:30 / 추천 0

여러 방법이 있겠지만, 보아하니 post로 넘겨받는 페이지에서 결과를 출력하고 가만히 있는 형식인듯한데,

일단 저라면 1step으로 결과페이지를 별도로 만들어서 post처리후에 그 페이지로 넘겨서 거기에서는 새로고침해도 아무 의미없게 하겠습니다.

이렇게가 불가능한 상황이라면 좀 이래저래 더 고민이 필요할텐데 가능하다면 위를 먼저하고서, 그렇게하더래도 사실 중복를 완전히 막을 수는 없으니 그에 대한 고민을 하는게 좋지 않을까 싶습니다.

개락 / 2018/01/15 18:08:48 / 추천 0

저는 적으신대로 세션처리로 작성페이지에서 세션값 주고 처리페이지에서 세션체크하고 등록처리하고 세션 비우고 새로고침시 세션 없어서 팅기는걸로 처리를 해두긴했지만..

이걸 해놔도 간혹 중복으로 들어오는경우가 있더라구요..ㅎㅎㅎㅎ;;

한대승(불의회상) / 2018/01/16 10:46:35 / 추천 0
location header를 이용하여 결과 페이지로 리다이렉트 시킵니다.
마PD / 2018/01/16 14:05:31 / 추천 0

@배강민

조언 감사합니다. 사용자 사용이라는게 정말 예측하기 힘드네요 ㅜㅜ

입력페이지 -> 처리페이지. 2단계로는 계속해서 이런 문제가 생기니 처리페이지 이후 결과페이지를 별도로 만드는게 그나마 나을거 같긴 하네요...

지금 만들고 있는 기능은 아닌데, 앱 푸시 쏘는 것도 같은 원리로 되어 있다보니 전체 고객에게 푸시가 2번씩 나간적도 있어서 참 어렵네요 ...

마PD / 2018/01/16 14:06:32 / 추천 0

@개락

정말 신기한게 다 막아놨다고 생각했는데 어떻게 하는건지 꼭 두번씩 하는 분들이 있더라구요. 한번은 카드결제도 그런식으로 두번씩 결제가 된적이 있어서... 확인 버튼 누르는 순간 확인버튼을 자바스크립트로 지워버리니까 그나마 좀 줄어들더라구요. 미스테리합니다.

구글링해서 나온것처럼 세션처리를 해야할까보네요 ㅜㅜ

마PD / 2018/01/16 14:26:33 / 추천 0

@한대승

댓글보고 키워드로 구글링 해봤는데... 처리 완료 후 다른 페이지로 리다이렉트 시킨다는 말씀이시죠??

뒤로가기를 막 누르는 사람들이 있어서 곤란했는데 이 방법으로 한번 해보겠습니다! 감사합니다!