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

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

오예이예 2년 전 조회 1,954

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

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

 

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

 

https://menual.kr/" target="_blank">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개

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

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

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

=> 

$daye = "";

과 같게 됩니다.

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

 

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

 

</p>

<p><?php

if ($_POST['addPoint']) {

    $addpoint = $_POST['addPoint'];

    $daye = date("Y-m-d", strtotime("+4 month"));</p>

<p>    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)."
";</p>

<p>    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;

}

?></p>

<p>

 

</p>

<p><div>

<a href="#" onclick="Minus(); return false;"> 1000원 차감 버튼 </a>

<a href="#" onclick="Add(); return false;"> 10000원 증가 버튼 </a>

</div></p>

<p><script>

function Add() {

    if (confirm('구매하시겠습니까?')) {        

        $.post("",{

            addPoint: "10000"

        },function(dats,status){

            alert("10000원 증가");        

        });

    }

}</p>

<p>function Minus() {

    if (confirm('구매하시겠습니까?')) {        

        $.post("",{

            addPoint: "-1000"

        },function(dats,status){

            alert("1000원 감소");

        });

    }

}

</script></p>

<p>

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

답변에 대한 댓글 1개

오예이예
2년 전
선생님 답변해주셔서 정말 감사합니다. 원하던 기능을 구현하였습니다. 추운데 건강조심하세요.~

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

2년 전

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

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

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

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

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

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

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

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

로그인