폼메일 질문드립니다.

폼메일 질문드립니다.

QA

폼메일 질문드립니다.

본문

안녕하세요

 

<form ~~ action="send.php">

</form>

폼을 넘기고

 

send.php 페이지는

 

<?php

include_once("./_common.php");

include "mailer.php";

 

~~

 

처럼 사용을 하고 있습니다.

 

 

근데 간혹 메일이 동시에 4~5개씩 들어올때도 있더라구요

 

혹시 1분에 한번씩만 접수를 할 수 있도록 제한을 걸 수 있을지요?

 

그리고 정상적인 루트 말고

해당 경로의 send.php 를 입력하면 메일이 그냥 발송해 버리던데

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

 

이걸 넣어도 적용은 안되더라구요.. (저게 맞는 기능인지는 잘 모르겠습니다.)

 

염치없지만..

 

혹시 알고 계신 고수님들 힌트나 도움 부탁드리겠습니다. ㅠ

 

 

이 질문에 댓글 쓰기 :

답변 3

두가지 방법이 있을 것 같습니다.

DB에 저장이 되면 저장된 IP와 접수 하려는 IP를 체크하여 이전 접수 시간을 체크하면 될것같구요, 세션을 이용한 방법도 있습니다.

 


<?php
session_start();
if (isset($_SESSION['last_req']) && (time() - $_SESSION['last_req']) < 60) {
    echo "<script>alert('1분에 한번씩만 접수하실 수 있습니다. 잠시 후 다시 시도해주세요.'); history.back();</script>";
    exit;
}
// 마지막 시간을 저장
$_SESSION['last_req'] = time();
 
include_once("./_common.php");
include "mailer.php";

~
~
~

 

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

최상단에 넣어주셔야 합니다. <?php 다음에요.

접수 정보가 디비에 들어간다면 같은 정보가 있으면 디비랑 메일 발송이 안되게 처리를 하시면 될거 같습니다. 해당 질문만으로는 자세히 알 수가 없어서 기본적인 조언만 받으실수 있으실거 같습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 240
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT