무식한 질문 하나 해도 될지 모르겠어요...

무식한 질문 하나 해도 될지 모르겠어요...

QA

무식한 질문 하나 해도 될지 모르겠어요...

본문

<!-- 포인트 선물-->

 

<?php

$mb = get_member($view['mb_id']);

?>

 

 

 

<form>

<tr><td>

<select name="선물">

<option value="selected" name="선물">선물선택</option>

<option value="1" name="선물">1천점</option>

<option value="2" name="선물">2천점</option>

<option value="3" name="선물">3천점</option>

</select><br><br>

<input type="submit" value"보내기" />

 

</td></tr>

 

</form>

 

<!-- 포인트 선물 --> 

 

 

게시판 뷰 스킨에서 읽는이가 버튼을 누르면 글쓴이에게 포인트 적립이 되게 하고 싶어서

모양만 일단 만들어 봤는데...

문제는 ㅠ 

<?

insert_point($mb['mb_id'], 1000, "1천점");

?>

인서트 포인트를 어디에 넣어야 하며...

submit 으로 적용을 시키는게 맞는건지....아니면 어떻게 적용을 시키는지...혹시 알려주실분 계신가요..

제가 막 배우기 시작해서 ..많이 어렵네요..

인서트 포인트를 폼안에 어디에 넣어도 게시글 읽는즉시 그냥 적립이 돼버리니..

 

부탁드립니다....이상한거 질문해서 죄송합니다..

이 질문에 댓글 쓰기 :

답변 1

<form action="/bbs/insert_point.php" method="post">

   <input type="hidden" name="mb_id" value="<?=$view['mb_id']?>" />

   <select name="point">

      <option value="1000">1천점</option>

     ~~~

   </select>

   <input type="submit" value="submit" />

</form>

이걸 view.skin.php 파일에...

 

<?

include_once "_common.php";

insert_point($_POST['mb_id'], $_POST['point'], $_POST['point']."점");

?>

이걸 /bbs/insert_point.php 파일로...

대충 이런 식으로 하시면 될 것 같네요.

 

부족한 부분은 코딩하셔서 직접 테스트 하시면서 채우셔야 할 것 같네요. 

왕계란님!! 가르쳐 주신대로 해보니 적용이 잘됩니다!! 너무 감사드려요!!
혹시 하나만 더 여쭤봐도 될까요?


<!-- 포인트 상점 벌점 -->

<form action="../bbs/insert_point.php" method="post">
  <input type="hidden" name="mb_id" value="<?=$view['mb_id']?>" />
<font color='#2F9D27'><b>상점</b></font>
  <select name="point">
      <option value="selected" name="0">상점선택</option>
      <option value="1000">+1000</option>
      <option value="2000">+2000</option>
  <option value="3000">+3000</option>
  </select>
  <input type="submit" value="보내기" /><br>


<font color='#FF0000'><b>벌점</b></font>
  <select name="point">
      <option value="selected" name="0">벌점선택</option>
      <option value="-1000">-1000</option>
      <option value="-2000">-2000</option>
  <option value="-3000">-3000</option>
  </select>
  <input type="submit" value="보내기" />


</form>

</td> </tr>

<!-- 포인트 상점 벌점-->



뷰스킨에는 이렇게 적었고



bbs/insert_point.php에는


<?
include_once "_common.php";



 insert_point($_POST['mb_id'], $_POST['point'], $_POST['point']."점");

?>




<a href="#" onClick="self.location.href=document.referrer"><h1>정상적으로 상벌점 적용 되었습니다.[돌아가기]</h1></a>


이렇게 적은 상태입니다.


첫번째로 서브밋 누르고 나서 인서트 화면으로 넘어간뒤 뷰스킨으로 다시
되돌아 오질 않아서 a태그로 클릭하게끔 해놨는데...
검색해보니 history.back(), history.go(-1) 스크립트를 써보라길래 써봤더니
여전히 먹통이었습니다..
이전화면으로 자동으로 다시 돌아가게 하려면 어떻게 해야할까요?

두번째로 결국 상/벌점으로 내 포인트를 상대에게 선물하는것이기에
내 포인트 한도를 벗어나면 불가 알럿이 뜨게끔 하고싶어요..
또한 내 포인트도 깎으려면 인서트 포인트 파일을 응용하면 될까요?

기본도 모르고 질문 드려 죄송합니다 ㅠㅠ한번만 더 부탁드려 봅니다..

1. 원래대로 돌아가기 위해서는 파일을 다시 수정해야 합니다.
<input type="hidden" name="mb_id" value="<?=$view['mb_id']?>" />
이거 밑에
<input type="hidden" name="ret_url" value="<?=$_SERVER['QUERY_STRING']?>" />
이렇게 넣으시고 나서
insert_point.php 파일
<?
~~~~~
?>
<script>
alert("정상적으로 상벌점 적용 되었습니다.");
location.replace("/bbs/board.php?<?=$_GET['ret_url']?>");
</script>

2.
<?
if($member['mb_point'] < $_POST['point']) {
    alert("포인트가 부족합니다.");
    exit;
} else {
    // 여기에 원래 코드들 다 넣으시면 됩니다.
}
?>
여기에 1번에 설명한 스크립트

그리고 자신의 포인트 차감도 똑같이 insert 뭐시기 함수 쓰시면 됩니다.

우와 감사합니다!!

<?
include_once "_common.php";


if ($member['mb_point'] < $_POST['point']) {
    alert("포인트가 부족합니다.");
    exit;
} else {

 insert_point($_POST['mb_id'], $_POST['point'], $_POST['point']."점");

}

?>


<script>
alert("정상적으로 상벌점 적용 되었습니다.");
location.replace("/bbs/board.php?<?=$_GET['ret_url']?>");
</script>



bbs/insert_point.php파일에 이렇게 적용하는것 맞는거죠??
적용해보니 두가지 에러가 생기는데
첫째, 포인트가 충분히 있음에도 불구하고 상점 보낼시 '포인트가 부족합니다' 라고 뜹니다.

둘째, 벌점은 잘 작동합니다. 그런데 벌점 처리를 하고 나서 '정상적으로 상벌점이 적용~'
알럿이 뜬뒤 '존재하지 않는 게시판입니다.' 라고 하나 더 뜨고 확인누르면 메인으로 가집니다..
쉽게 설명해 주셨는데 제가 이해를 잘 못해서 잘못 적용한것 같기도 하고..

ㅠㅠ저때문에 너무 귀찮게 해드리는것 아닌지..정말 죄송합니다...

$_GET['ret_url'] => $_POST['ret_url']로 바꾸시면 됩니다.
$member['mb_point'] 이거랑 $_POST['point'] 이건 직접 찍어 보셔야 할 것 같네요.
값이 정상적으로 나오는지.
포인트가 충분함에도 불구하고 그쪽에서 걸린다는 건 둘 중 하나의 값이 이상하게 나와서 비교를 못하는 것 같습니다.

($member['mb_point'] < $_POST['point'])
내 포인트보다 포스트된 포인트가 큰가?

벌점 적용시 -1000, -2000, -3000 모두 음수라서 현재 내 포인트 보다 무조건 작아요
그래서 내가 포인트가 없어도 벌점이 적용이 되네요...

벌점이란 걸 지금 봤네요.
point가 그냥 일반 변수로 되어서 넘어가는데 저렇게 되면 아무리 상점을 주려고 해도 값이 안 들어갈 겁니다.
같은 이름의 변수가 중복이 되기 때문에 제일 마지막 변수가 처음에 온 것의 값을 덮기 때문에요.
차라리 분기를 시킬 거면
<select name="type">
<option value="plus">상점</option>
<option value="minus">벌점</option>
</select>
이런 식으로 해서 작업을 하시는 게 더 낫겠네요.
그래서 plus일 경우엔 point에서 넘어오는 값을 그냥 입력하고 minus일 경우는 * -1을 해서 마이너스로 만들어서 입력하면 되겠네요.
그리고 현재 입력한 사람의 포인트랑 넘어온 포인트를 비교할 때도 무조건 양수가 될 테니 굳이 가공할 필요도 없구요.
잘 고민해 보시기 바랍니다.

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

회원로그인

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