나는 한 번만 제출할 수 있기를 바라는 형태로 whmcs를 작성하여 제출하고 새로 고침하여 다시 제출하십시오. $ _POST 설정을 취소하려고합니다. 또는 리디렉션,하지만이 상황에서 작동하지 않을 것입니다, 어떻게 키를 생성하고 그것을 한 번만 사용할 수 있도록? mysql을 사용할 수 없다.PHP로 FORM 키를 생성하는 지능적인 방법
답변
왜 세션에 임의의 키를 저장하지 않습니까? 이것이 대부분의 CRSF 토큰 시스템의 작동 방식입니다. 폼을로드 할 때 키를 생성하여 세션에 저장하고이를 폼에 포함시킵니다. 제출할 때 키를 비교하고 저장된 키를 삭제하십시오.
그냥 실수로 성공적으로 제출 양식을 다시 제출하도록 사용자를 원하지 않는 경우는, @zerkms '주석에서 링크는 당신이 원하는 무엇인가 : http://en.wikipedia.org/wiki/Post/Redirect/Get
예, 무작위 키를 생성하여 세션 및 양식에 넣고 POST 수신시 비교합니다. Javascript를 사용하여 Form에서 뭔가를 할 수는 있지만 클라이언트 쪽에서는 그렇게 할 수 없습니다. – Flo
양식이 제출 된 경우 세션 또는 쿠키를 설정하고 미리 존재하는지 확인하십시오.
영원한 수표를 원한다면 정보를 IP 및 브라우저와 같은 데이터베이스에 저장할 수도 있지만 이것은 자신의 문제이므로 100 % 시간을 멈추지 않을 것입니다. 당신이 당신의 작업을 완료 한 후
더블 게시를 방지하는 가장 일반적인 방법은
header('location: /'.$your_url_here);
을하는 것입니다. 그래서 당신은 $ _POST없이 같은 페이지로 리디렉션합니다.
헤더 뒤에 – Tech4Wilco
네, 맞아요, 또한 그걸로 끝내기 (exit)를 추가하는 것을 추천합니다 - 여기에 쓰는 것을 잊었습니다 :) – oyatek
페이지가 $ _POST [ 'id']을 (를) 필요로하지 않습니다. 항상. –
나는 이것이 오래된 질문이라는 것을 알고 있지만 나는 최근에 같은 문제가 있었다. POST 후에 다른 멋진 템플릿 파일로 전환하는 경우에도 제품 상세 페이지 (예 :)에 머물고 싶으면 Post/Redirect/Get 솔루션이 WHMCS에서 작동하지 않는 것 같습니다. 아마도 $ _POST [id ']가 필요하고 새로 고침 후에 사라질 것입니다. 그래서 내가 얻을 수있는 가장 가까운 것은 원래의 포스터가 원하는 것이 아닌, 내가 원한 것이 아닌 제품 목록 페이지로 되돌아가는 것이 었습니다.
마지막으로 해결책은 양식을 제출 한 후 $_SESSION[submitted]
변수를 추가하는 것입니다. 자신이하는 일에 따라 논리를 알아 내야 할 것입니다. 상단에와 POST 폼 데이터가 존재하지 않는 경우는 세션 키를 "제출"재설정
if ($_SESSION['submitted'] == 1 && !isset($_POST['somecustomkey'])) { unset($_SESSION['submitted']); }
:
내 논리는 같은 간다.
그런 다음 정보를 데이터베이스에 쓰거나 다른 것을 작성하기 전에 수표를 추가하십시오.
if ($_SESSION['submitted'] != 1) { //Do some stuff with $_POST form data $_SESSION['submitted'] = 1; }
나는이 의도 $ _SESSION의 목적과 쉽게 구현할과 잘 맞는 것 같아요.
- 1. 안드로이드에서 릴리스 키를 생성하는 방법
- 2. 고유 한 64 비트 키를 생성하는 방법
- 3. 큰 구조체를 텍스트 파일로 덤프하는 지능적인 방법
- 4. PHP로 보고서를 생성하는 도구는 무엇입니까?
- 5. Android에서 FM 라디오 응용 프로그램을 만드는 방법
- 6. ipad를위한 FM 라디오?
- 7. FM 방송국 오디오 스트리밍
- 8. 정수 FM 복조
- 9. Android CyanogenMod FM 플레이어 앱
- 10. 나는이 같은 키를 생성하는 경우 JCE
- 11. Goolgle지도를 생성하는 방법
- 12. ajax 호출 후 반환하는 PHP로 html을 생성하는 방법
- 13. netCobol Fujitsu에서 fm 파일 읽기
- 14. Android 용 FM 라디오 앱
- 15. fm 이클립스에서 안드로이드 응용 프로그램으로
- 16. Java에서 고유 한 4 문자 무작위 키를 생성하는 방법
- 17. RSA_generate_key를 사용하여 항상 다른 공개 키를 생성하는 방법
- 18. facebook 로그인 통합 안드로이드 애플 리케이션, 릴리스 키를 생성하는 방법?
- 19. DB2 (SQL 최적화)에서 기본 키를 생성하는 방법
- 20. 배열 및 고유 키를 PHP로 사용
- 21. php로 서명을 생성하는 데 문제가 있습니다.
- 22. PHP로 임의의 숫자를 생성하는 방법은 무엇입니까?
- 23. 안드로이드에 대한 일식 fm 응용 프로그램
- 24. 문자열에있는 문자가 여러 번 나타나는 것을 지우는 지능적인 방법
- 25. 그룹 엔터티에 대한 키를 생성하는 방법은 무엇입니까?
- 26. 난장판 값에서 멋진 키를 생성하는 해시 알고리즘
- 27. 기본 키를 생성하는 MySQL 사용자 정의 함수
- 28. SSIS로 기본 키를 생성하는 중 문제가 발생했습니다.
- 29. 순열을 기반으로 키를 생성하는 최적의 알고리즘
- 30. openssl을 사용하여 Qt에서 키를 생성하는 방법은 무엇입니까?
http://en.wikipedia.org/wiki/Post/Redirect/Get – zerkms
[사용자가 양식을 두 번 제출하지 못하게하는 방법] (http://stackoverflow.com/questions/16814157/how- do-prevent-users-from-form-twice-twice) – Gajus