채택완료

여분필드에 특정값 있을때만 write_update.skin.php 실행

안녕하세요. 글 작성시 다른 게시판으로 자동 복사되는 소스를 사용하고 있는데

이 소스를 글을 작성시 wr_1 여분필드에 abc라는 값이 입력이 될때만 이소스를 실행하고 싶은데 if문을 write_update.skin.php에 어떻게 넣어줘야 할지 도움 부탁드립니다.

조건은 wr_1의 값이 abc 일때로 가정해주시면 됩니다. 짧은지식으로 아래와 같이했는데 안되네요 ㅠㅠ

<?

if ($write['wr_1'] == "abc") {  

업데이트 소스 . . .

?> 

|

답변 3개 / 댓글 5개

채택된 답변
+20 포인트

원글을 작성하실 경우 $write 값은 생성되지 않습니다.

wr_1 에 값을 POST 로 전송하나요?

POST로 전송한다면 조건문은 

if ( $_POST['wr_1'] == 'abc') {

...업데이트문

}

이렇게 주어져야 할것입니다.

답변에 대한 댓글 1개

감사합니다. 이제 잘되네요. 전송 방법에 따라서 조건문이 달라지는군요. 정말 감사드립니다.

 

write_update.skin.php​ 맨위에 if($write['wr_1']=="abc"){​} 씌워주는것은 마찬가지 인데요

 

디버깅 요령을 알려드리면 씌우는  if($write['wr_1']=="abc"){​} ​바로 윗줄에

요걸 넣어주세요 

<?php alert($write['wr_1']); 

  if($write['wr_1']=="abc"){​} ?>

이렇게요

그리고 님이 wr_1에다가 abc값을 집어넣으시면

의도대로 동작한다면 경고창 뜨면서 경고창안에 abc가 뜰거에요(경고창이 $write['wr_1']에 들어있는값을 출력하는 겁니다.

그렇게 $write['wr_1']에 값이 잘 들어가셨음을 확인하시고요

 

그리고  if($write['wr_1']=="abc"){​ 다음에다가

alert("업데이트 구문이 실행되었습니다");를 넣어주세요

 

님의 의도대로 write_update.skin.php가 실행되었으면 위의 경우처럼 경고창 뜨면서 그안에

업데이트 구문이 실행되었습니다 가 써있을 겁니다.

 

이런방식으로 디버깅하세요(참고로 alert는 경고창 띄운다음 경고창 닫으면 그 다음 구문들 실행하지 않고 곧장 이전페이지로 회귀합니다)​

아 그리고 경고창에 올바른 방법 뭐라뭐라나오면 그 변수에 " " 즉 공백이나 입력이 되어있지 않은 경우입니다.

답변에 대한 댓글 1개

답변 감사합니다 ^^ 위 방법대로 확인하고 MySql에서 테이블 wr_1값 확인해도 글 작성시에는 정상적으로 값이 입력이 되었네요. 다른곳에 오류가 없는지 찾아봐야겠습니다.

write_update.skin.php 파일을 열어 아래 코드를 추가하세요. 

if($write['wr_1']=="abc"){

기존 내용

}

답변에 대한 댓글 3개

이대로해도 안되네요 ㅠㅠ 저도 이게 맞다고 생각하는데 안됩니다.ㅠ
그럼 업데이트 구문이 잘못된것 아닌가요?
조건은 맞습니다.
그러게요 저도 맞다고 생각하는데 if문을 안쓰면 업데이트는 제대로 이뤄져서 글복사가 제대로 됩니다.
참고로 업데이트 소스는 http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=9800 이거인데 여기서 아마 충돌이 일어나는것 같기도 하네요.. mssql로 테이블 보면 wr_1의 값은 제대로 들어가있구요.. 답변 감사드립니다.

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