post로 받는 필드값이 새로고침시 초기화가 되버립니다 ㅠ

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
post로 받는 필드값이 새로고침시 초기화가 되버립니다 ㅠ

QA

post로 받는 필드값이 새로고침시 초기화가 되버립니다 ㅠ

본문

자꾸 질문을 하여 죄송합니다.ㅠㅠ

그동안 답변주셔서 공부도 많이하고 혼자해결하려 하는데 알수없는 문제가 생겨 질문을 드립니다.

 

링크클릭-> 자바스크립트실행 -> 필드값 전송에 대한 코드를 짰으며, 해당상세동작은

 

https://menual.kr/ 결제메뉴 페이지에서 1000원차감버튼을 누르면 하기와 같이 작동이 됩니다.

1000원 포인트차감되고 / 4달뒤 날짜가 mb_3에 입력됩니다./

해당내용을 로그인프로필과 아랫부분에서 확인가능합니다.

 

하지만 새로고침을 하면 mb_3값이 초기화 되버립니다. 

이 문제를 해결할 수 있을까요?

 

테스트아이디비번 test / test 입니다.

 

페이지를 tab으로 만들어서 생기는 문제일까요?

 

<?php
  $addpoint = $_POST['addPoint'];
  $daye = $_POST['day'];

            insert_point($member['mb_id'] , $addpoint, '--차감 ',G5_TIME_YMDHIS, $day);
            $timestamp = strtotime($member['mb_3']);
            $f_day = date('Y-m-d', $timestamp);
            echo "현재로부터 1달 뒤 : ".date("Y-m-d ", $timestamp)."<br/>";
       
            if( $is_member){
                $result = sql_query("update {$g5['member_table']} set mb_1='{$f_day}', mb_3 = '{$daye}' where mb_id='{$member['mb_id']}' ");
                if ($result == true) {
                    $member['mb_1'] = $f_day;
                    $member['mb_3'] = $daye;
  }     
}           
?>

 


//아래는 링크클릭시 작동 스크립트

<script>
function Add()
{
    $.post("",{
    addPoint: "-1000"
 },function(dats,status){
    alert("1000원 감소");
  });
}
   
    function day()
{
    $.post("",{
    day: "+4 months"
 },function(dats,status){
    alert("day4주");
    location.reload();
  });
}

 

function Minus()
{
    $.post("",{
    addPoint: "10000"
 },function(dats,status){
    alert("10000원 증가");
    window.location.reload();
  });
}
</script>

이 질문에 댓글 쓰기 :

답변 2

처음에 들어갈 때는 POST 값이 없습니다. 버튼을 누를 때 POST 값이 전달됩니다.

$daye = $_POST['day']; // $_POST['day']  값이 빈 값이면..

=> 

$daye = "";

과 같게 됩니다.

mb_3 = "" 값이 저장됩니다.

 

코드 전체적으로 문제가 많아 보여.. 전체적으로 수정하였습니다.

 


<?php
if ($_POST['addPoint']) {
    $addpoint = $_POST['addPoint'];
    $daye = date("Y-m-d", strtotime("+4 month"));
    insert_point($member['mb_id'] , $addpoint, '--차감 ', G5_TIME_YMDHIS, $day);
    $timestamp = strtotime($member['mb_3']);
    $f_day = date('Y-m-d', $timestamp);
    echo "현재로부터 1달 뒤 : ".date("Y-m-d ", $timestamp)."<br/>";
    if ($is_member){
        $result = sql_query("update {$g5['member_table']} set mb_1='{$f_day}', mb_3 = '{$daye}' where mb_id='{$member['mb_id']}' ");
        if ($result == true) {
            $member['mb_1'] = $f_day;
            $member['mb_3'] = $daye;
        }
    }
    exit;
}
?>

 


<div>
<a href="#" onclick="Minus(); return false;"> 1000원 차감 버튼 </a>
<a href="#" onclick="Add(); return false;"> 10000원 증가 버튼 </a>
</div>
<script>
function Add() {
    if (confirm('구매하시겠습니까?')) {        
        $.post("",{
            addPoint: "10000"
        },function(dats,status){
            alert("10000원 증가");        
        });
    }
}
function Minus() {
    if (confirm('구매하시겠습니까?')) {        
        $.post("",{
            addPoint: "-1000"
        },function(dats,status){
            alert("1000원 감소");
        });
    }
}
</script>

혹시나 하는 마음에 글을 남기는데요...

만약 저 기능으로 제품을 구매하거나 내부 포인트가 이용될 예정이라면..

그냥 전문가한테 맞기세요....

인젝션쿼리에 당하면 골치아프실 수도 있어요..

예로 만원차감만 기능을 구현했다 하더라도 만원 차감이아닌 임의의 숫자 증가로 바꿀 수도 있어요...

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

회원로그인

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