2012-08-03 8 views
0

지불을 처리하는 양식이 있지만 300 회 지불 할 때마다 대략 두 번씩 나타납니다. 내 기록에는 이러한 모든 발생에 대해 두 가지 요청이 있음이 표시됩니다.양식을 두 번 제출하십시오.

클릭 한 후 제출 버튼을 사용할 수 없게하는 자바 스크립트를 구현했지만 나에게 잘 작동하는 것으로 보입니다.하지만 지금은 여전히 ​​두 번씩 제출하고 있습니다.

양식을 두 번 제출할 수있는 다른 사람은 누구입니까?

+0

뒤로 버튼 + 다시 제출 하시겠습니까? –

+0

중복 제출 사이의 시간 차이는 무엇입니까? 사용자가 다시 방문한 다음 다시 제출했을 수도 있습니다. 또한 User-Agent는 무엇입니까? –

+0

은 아마도 사용자와 관련하여 문제가되지 않지만 결코 스마트하지는 못합니다. 당신은 혼자서 js에 의지 할 수없고, 비활성화 될 수 있습니다. 서버 사이드 검사가 필요합니다. –

답변

4

Dagon이 말한 것처럼 서버 측 검사는 여기에 친구입니다. 양식의 각 인스턴스에 무작위로 생성 된 키를 제공하고 (guid가 좋음) 데이터베이스에 저장합니다. 이미 db에있는 키가 들어있는 양식을 승인하지 마십시오.

또한 양식 처리 로직을 실행 한 후에 HTML을 표시하고 있습니까? 그렇다면 양식을 처리 한 후 리디렉션을 시도하십시오.

+1

양식을 제출하기 전에'$ _POST'가 비어 있지 않은지 확인하고 몇 가지 세부 사항과 타임 스탬프 만 확인하면됩니다. '밥 (bob)'이 마지막 순간에 같은 금액을 지불했거나 이전에 지불 ID를 사용했거나 더 많은 데이터를 알기가 어려울 경우. –

+0

감사합니다. 문제의 원인에 대해 긍정적 인 평가를받지 않고 솔루션을 구현해야합니다. 나는 육체적으로 누군가가 그것을 재현하는 것을 보지 않고는 그 원인을 파악할 길이 없다고 생각한다. – wyqydsyq

+1

예. 그 뒤로 버튼으로 바이올린을 치면 내기를 걸 수 있습니다. :-) –

1

이것은 사용자가 양식 제출 버튼을 누른 후 자바 스크립트로 사용 중지하는 방법입니다. 따라서 사용자가 실수로 양식을 두 번 제출하는 것을 방지해야합니다. 그것은 우리가 그것을 같이 구현하는 모든 사이트에서 작동합니다. 때로는 사용자가 참을성이 없어서 제출 버튼을 여러 번 클릭하기 때문에 이중 요청을받는 이유가 있습니다. 모든 브라우저에서 작동하는지 확인해야합니다 (버튼을 비활성화 함).

또한 서버 쪽에서 할 수도 있습니다. 더 어렵습니다.

upvoted 대답과 비슷하게 사용합니다. Enable/disable submit button with jQuery and Coldfusion server code

관련 문제