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>
혹시나 하는 마음에 글을 남기는데요...
만약 저 기능으로 제품을 구매하거나 내부 포인트가 이용될 예정이라면..
그냥 전문가한테 맞기세요....
인젝션쿼리에 당하면 골치아프실 수도 있어요..
예로 만원차감만 기능을 구현했다 하더라도 만원 차감이아닌 임의의 숫자 증가로 바꿀 수도 있어요...