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

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

QA

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

본문

안녕하세요

 

폼 입력받으면

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

그리고

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

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

 

 

a.com


// 데이터 준비
$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'],
);
// 데이터를 JSON 형식으로 변환
$json_data = json_encode($data_to_send);
// b.com으로 POST 요청 보내기
$b_com_api_url = 'https://b.com/receive.php'; // b.com의 API 엔드포인트 URL
$ch = curl_init($b_com_api_url);
// HTTP 헤더 설정
$headers = array(
    'Content-Type: application/json', // Content-Type을 JSON으로 설정
);
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);
$response = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
// 응답 확인
if ($http_status == 200) {
    echo '데이터가 성공적으로 전송되었습니다.';
} else {
    echo '데이터 전송 실패: HTTP ' . $http_status;
}

 

 

b.com (receive.php)


<?php
// JSON 데이터 수신
$json_data = file_get_contents('php://input');
$data_received = json_decode($json_data, true);
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'];
    // 필요한 다른 데이터 처리
    // 여기에서 데이터를 b.com의 데이터베이스에 저장
    // 예를 들어, 데이터베이스 연결 및 쿼리 실행
    $db_host = 'localhost';
    $db_user = 'test';
    $db_password = '1234';
    $db_name = 'test';
    $db = new mysqli($db_host, $db_user, $db_password, $db_name);
    
    if ($db->connect_error) {
        die("데이터베이스 연결 실패: " . $db->connect_error);
    }

    // 데이터 삽입
    $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();
        echo '데이터가 성공적으로 수신 및 저장되었습니다.';
    } else {
        echo '데이터 삽입 실패: ' . $db->error;
    }
} else {
    echo '데이터 수신 실패: 잘못된 데이터 형식';
}
?>

 

 

 

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

 

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

DB접속까지는 되는데

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

 

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

 

 

추가로 테스트를 해보니

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

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

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

이 질문에 댓글 쓰기 :

답변 1

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

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

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

답변감사합니다.
혹시 아래처럼 하는게 맞는지요.. 해봣는데 작동이 안되서요..ㅠ


// 데이터 준비
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'],
);

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

회원로그인

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