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

폼메일 작성시 다른게시판으로도 보내기. 채택완료

그누배우자 2년 전 조회 1,968

안녕하세요

 

폼 입력받으면

a.com test 테이블에 db가 입력됩니다.

그리고

b.com test 테이블에도 입력 하려 합니다.

서로 다른 웹호스팅입니다.

 

 

a.com

</p>

<p>// 데이터 준비

$data_to_send = array(

    'wr_subject' => $_REQUEST['wr_subject'],

    'wr_name' => $_REQUEST['wr_name'],

    'wr_1' => $_REQUEST['wr_1'],

    'wr_2' => $_REQUEST['wr_2'],

    'wr_3' => $_REQUEST['wr_3'],

    'wr_4' => $_REQUEST['wr_4'],

    'wr_5' => $_REQUEST['wr_5'],

    'wr_6' => $_REQUEST['wr_6'],

    'wr_7' => $_REQUEST['wr_7'],

    'wr_8' => $_REQUEST['wr_8'],

    'wr_9' => $_REQUEST['wr_9'],

    'wr_10' => $_REQUEST['wr_10'],

    'wr_content' => $_REQUEST['wr_content'],

);</p>

<p>// 데이터를 JSON 형식으로 변환

$json_data = json_encode($data_to_send);</p>

<p>// b.com으로 POST 요청 보내기

$b_com_api_url = '<a href="https://b.com/receive.php';" target="_blank" rel="noopener noreferrer">https://b.com/receive.php';</a> // b.com의 API 엔드포인트 URL

$ch = curl_init($b_com_api_url);</p>

<p>// HTTP 헤더 설정

$headers = array(

    'Content-Type: application/json', // Content-Type을 JSON으로 설정

);</p>

<p>curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);</p>

<p>$response = curl_exec($ch);

$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);</p>

<p>// 응답 확인

if ($http_status == 200) {

    echo '데이터가 성공적으로 전송되었습니다.';

} else {

    echo '데이터 전송 실패: HTTP ' . $http_status;

}</p>

<p>

 

 

b.com (receive.php)

</p>

<p><?php

// JSON 데이터 수신

$json_data = file_get_contents('php://input');

$data_received = json_decode($json_data, true);</p>

<p>if ($data_received) {

    // 데이터 처리

    $wr_subject = $data_received['wr_subject'];

    $wr_name = $data_received['wr_name'];

    $wr_1 = $data_received['wr_1'];

    $wr_2 = $data_received['wr_2'];

    $wr_3 = $data_received['wr_3'];

    $wr_4 = $data_received['wr_4'];

    $wr_5 = $data_received['wr_5'];

    $wr_6 = $data_received['wr_6'];

    $wr_7 = $data_received['wr_7'];

    $wr_8 = $data_received['wr_8'];

    $wr_9 = $data_received['wr_9'];

    $wr_10 = $data_received['wr_10'];

    $wr_content = $data_received['wr_content'];</p>

<p>    // 필요한 다른 데이터 처리</p>

<p>    // 여기에서 데이터를 b.com의 데이터베이스에 저장

    // 예를 들어, 데이터베이스 연결 및 쿼리 실행

    $db_host = 'localhost';

    $db_user = 'test';

    $db_password = '1234';

    $db_name = 'test';</p>

<p>    $db = new mysqli($db_host, $db_user, $db_password, $db_name);

    

    if ($db->connect_error) {

        die("데이터베이스 연결 실패: " . $db->connect_error);

    }</p>

<p>

    // 데이터 삽입

    $sql = "INSERT INTO g5_write_test (wr_subject, wr_name, wr_1, wr_2, wr_3, wr_4, wr_5, wr_6, wr_7, wr_8, wr_9, wr_10, wr_content) 

            VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

    $stmt = $db->prepare($sql);

    

    if ($stmt) {

        $stmt->bind_param("ssssssssssss", $wr_subject, $wr_name, $wr_1, $wr_2, $wr_3, $wr_4, $wr_5, $wr_6, $wr_7, $wr_8, $wr_9, $wr_10, $wr_content);

        $stmt->execute();

        $stmt->close();

        $db->close();</p>

<p>        echo '데이터가 성공적으로 수신 및 저장되었습니다.';

    } else {

        echo '데이터 삽입 실패: ' . $db->error;

    }

} else {

    echo '데이터 수신 실패: 잘못된 데이터 형식';

}

?></p>

<p>

 

 

 

a.com 에서는 데이터가 성공적으로 전송되었다고 나옵니다.

 

근데 b.com 에서 수신이 안되고 있습니다.

DB접속까지는 되는데

자꾸 데이터 수신 실패 만 뜹니다.

 

혹시 잘못된 부분 찝어주실 고수님들.. 도와주십시오..ㅠㅠ

 

 

추가로 테스트를 해보니

a.com 에서 보내는 값이 wr_2까지 밖에 없어서 그 이후값이 null값이라 입력이 안되는것 같습니다.

대처할 수 있는 방안이 있을까요?

wr_2까지만 받게 하니 입력이 잘되네요 ㅎㅎ

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

답변 1개

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

wr_2까지만 받게 하니 입력이 잘되네요<---그렇다면 답은 나왔군요

데이터 준비 상단에 아래처럼 모든 $_REQUEST에 대하여 설정하세요

if(!isset($_REQUEST['wr_1']) || !$_REQUEST['wr_1']) $_REQUEST['wr_1'] ='';

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

답변에 대한 댓글 1개

그누배우자
2년 전
답변감사합니다.
혹시 아래처럼 하는게 맞는지요.. 해봣는데 작동이 안되서요..ㅠ


// 데이터 준비
if(!isset($_REQUEST['wr_subject']) || !$_REQUEST['wr_subject']) $_REQUEST['wr_subject'] ='';
if(!isset($_REQUEST['wr_name']) || !$_REQUEST['wr_name']) $_REQUEST['wr_name'] ='';
if(!isset($_REQUEST['wr_1']) || !$_REQUEST['wr_1']) $_REQUEST['wr_1'] ='';
if(!isset($_REQUEST['wr_2']) || !$_REQUEST['wr_2']) $_REQUEST['wr_2'] ='';
if(!isset($_REQUEST['wr_3']) || !$_REQUEST['wr_3']) $_REQUEST['wr_3'] ='';
if(!isset($_REQUEST['wr_4']) || !$_REQUEST['wr_4']) $_REQUEST['wr_4'] ='';
if(!isset($_REQUEST['wr_5']) || !$_REQUEST['wr_5']) $_REQUEST['wr_5'] ='';
if(!isset($_REQUEST['wr_6']) || !$_REQUEST['wr_6']) $_REQUEST['wr_6'] ='';
if(!isset($_REQUEST['wr_7']) || !$_REQUEST['wr_7']) $_REQUEST['wr_7'] ='';
if(!isset($_REQUEST['wr_8']) || !$_REQUEST['wr_8']) $_REQUEST['wr_8'] ='';
if(!isset($_REQUEST['wr_9']) || !$_REQUEST['wr_9']) $_REQUEST['wr_9'] ='';
if(!isset($_REQUEST['wr_10']) || !$_REQUEST['wr_10']) $_REQUEST['wr_10'] ='';
if(!isset($_REQUEST['wr_content']) || !$_REQUEST['wr_content']) $_REQUEST['wr_content'] ='';

$data_to_send = array(
'wr_subject' => $_REQUEST['wr_subject'],
'wr_name' => $_REQUEST['wr_name'],
'wr_1' => $_REQUEST['wr_1'],
'wr_2' => $_REQUEST['wr_2'],
'wr_3' => $_REQUEST['wr_3'],
'wr_4' => $_REQUEST['wr_4'],
'wr_5' => $_REQUEST['wr_5'],
'wr_6' => $_REQUEST['wr_6'],
'wr_7' => $_REQUEST['wr_7'],
'wr_8' => $_REQUEST['wr_8'],
'wr_9' => $_REQUEST['wr_9'],
'wr_10' => $_REQUEST['wr_10'],
'wr_content' => $_REQUEST['wr_content'],
);

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

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

로그인