테스트 사이트 - 개발 중인 베타 버전입니다

DB입력 페이지 새로고침 시 디폴트값 입력되는 현상 질문 채택완료

CRSSK 8년 전 조회 5,309
</div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;"><?</div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;"><span class="Apple-tab-span" style="white-space: pre;"></span>include '../../lib/DB 접속 파일 이름.php'; //db 접속 정보 가져오기</div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;"><span class="Apple-tab-span" style="white-space: pre;"></span>$con = mysql_connect($host,$uname,$pwd) or die("DB 연결에 실패하였습니다. \n 경로, 혹은 아이디 비밀번호가 올바른지 확인하여 주십시오."); //db 접속</div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;"><span class="Apple-tab-span" style="white-space: pre;"></span>mysql_select_db($db,$con) or die("db selection failed"); //db 선택</div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;"><span class="Apple-tab-span" style="white-space: pre;"></span>mysql_query("set names utf8"); //utf8 설정</div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;"><span class="Apple-tab-span" style="white-space: pre;"></span><span class="Apple-tab-span" style="white-space: pre;"></span></div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;"><span class="Apple-tab-span" style="white-space: pre;"></span>$query = "INSERT INTO 테이블 (필드) values (변수)";</div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;"><span class="Apple-tab-span" style="white-space: pre;"></span>$result = mysql_query($query);</div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;">?></div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;">
</div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;"><form id="frm" name="frm" action='이 파일 주소' method='post'></div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;">
</div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;">입력 폼</div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;">
</div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;">
</div><div style="margin-left: 40px;"><font color="#404040" face="굴림, Gulim"><span style="font-size: 13px;"><input type="submit" name="submit" style="height:30px;width:150px;" value="쿠폰 발급받기" onclick="submit();"></span></font>
</div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;"></form></div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;">
</div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;"><div>
</div><div><?</div></div><blockquote style="margin: 0px 0px 0px 40px; color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px; border: none; padding: 0px;">여러가지 변수들 선언</blockquote><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;">?></div><div style="color: rgb(64, 64, 64); font-family: 굴림, Gulim; font-size: 13px;">
정상적이라면 버튼을 누르면 DB값이 입력이 되야 하는 겁니다. 지금은 단순히 페이지 들어가기만 하면 DB값이 입력이 되고 거기다 새로고침해도 DB값이 입력이 되는 상황입니다.
제 구문들을 살펴보자면 대충 구조가 이렇게가 끝인데.. 
여기서 어떤 작업을 해 줘야 DB값입력을 멈출 수 있을까요? 
추가정보 필요하시면 언제든지 불러주세요.
댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
굿
8년 전

</p><p><?
include '../../lib/DB 접속 파일 이름.php'; //db 접속 정보 가져오기
$con = mysql_connect($host,$uname,$pwd) or die("DB 연결에 실패하였습니다. \n 경로, 혹은 아이디 비밀번호가 올바른지 확인하여 주십시오."); //db 접속
mysql_select_db($db,$con) or die("db selection failed"); //db 선택
mysql_query("set names utf8"); //utf8 설정</p><p>
if($action == "insert")
{
 $query = "INSERT INTO 테이블 (필드) values (변수)";
 $result = mysql_query($query);
 
 header("Location:이페이지주소.php");</p><p> exit;
}
?></p><p><form id="frm" name="frm" action='이 파일 주소' method='post'>
<input type="hidden" name="action" value="insert"/>
입력 폼</p><p>
<input type="submit" name="submit" style="height:30px;width:150px;" value="쿠폰 발급받기" onclick="submit();">
</form></p><p>
 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

C
CRSSK
8년 전
감사합니다. 아직 완전히 되지는 않지만 응용하면 될 것 같네요 정말 감사합니다~

댓글을 작성하려면 로그인이 필요합니다.

플라이
8년 전

꼭 그런 방식으로 해야 하는지는 모르겠지만 값이 넘어올경우를 체크하거나 한페이지에서 다 처리하기 보다는 다른 process 파일을 별도로 만들어서 적용하는걸 추천드립니다.

 

한페이지에서 새로고침하면서 반영하게 되면 계속 새로고침할때 생성될수 밖에 없는 상황이라 ajax나 process 방식으로 전달하여 받는 방식이 수월하고 원하는 방식으로 처리 되지 않을까 싶습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

C
CRSSK
8년 전
다음에 참고해보도록 하겠습니다 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

사바이캅

리프레쉬 해도 post 데이터가 남아서 DB인서트가 됩니다..

아래와 같이 캐쉬 삭제 하시면 될듯..

 

php
header( 'Cache-Control: no-store, no-cache, must-revalidate' ); 
header( 'Cache-Control: post-check=0, pre-check=0', false ); 
header( 'Pragma: no-cache' ); 
?>
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

C
CRSSK
8년 전
음.. 죄송하지만 저 구문 집어넣어 봤는데

여전히 페이지 들어갈때마다 자동으로 DB값 입력이 되네요..

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인