외부 POST 값 가지고 오기

외부 POST 값 가지고 오기

QA

외부 POST 값 가지고 오기

본문

API형식으로 외부에서 유저 데이터를 POST 값으로 받아오려고 합니다.

 

payload가 response={"mb_id":"test123","retry":1,"mb_name":"테스트".... }

 

이런식으로 HTTP & POST 로 parameter name = “response” 로 해서 전달 받는데

 

다음과 같은 방식으로 받았더니 Null 값이 됩니다. 

$arr = $_POST ? $_POST : $_GET;

foreach($arr as $key => $value) {

       foreach($value as $key1 => $value1) {

            $$key[$key1] = $value;

        }

        $$key = $value;

    }

 

Q, 위 데이터 양식을 처리하는 방식이 어떻게 되나요? 

이 질문에 댓글 쓰기 :

답변 3

$data = json_decode(stripslashes($_POST['response']), true); // stripslashes 는 \ 제거 필요시  사용

print_r2($data);

 

echo $data['mb_id'];

감사합니다. 안그래도 하나씩 쪼개서 분석하니 \값이 앞뒤에 있어서 배열이 안되는 가 했습니다.
reponse를 분리하고 response 값에 \를 없애서  json_decode 디코드하니까 변수 값만 챙겨서 나오네요.


<?php
$_POST['mb_name'] = '어드민';
$_POST['mb_id'] = 'admin';
 
$arr = $_POST ? $_POST : $_GET;
 
foreach($arr as $key => $value) {
    ${$key} = $value;
}
echo $mb_name; // 어드민 출력됨

foreach를 한단계 낮추라는 것이지요?
foreach($arr as $key => $value) {
    ${$key} = $value;
} 로 바꾸어도
$response 값에는 그대로 들어가는데, response 안에 있는 데이터 값을 불러오면
null이 됩니다.

던저지는 POST 값이
response={"mb_id":"test123","retry":1,"mb_name":"테스트".... } 형식이라 그런지

$mb_id = $_POST['mb_id'];
 했을 시 null 값으로 들어갑니다.

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

회원로그인

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