폼메일 작성시 다른게시판으로도 보내기.
본문
안녕하세요
폼 입력받으면
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'] ='';
답변을 작성하시기 전에 로그인 해주세요.