단순 post로 값을 보내는 경우 보안에 좋지 않으므로
받아오는 페이지에서 리퍼러값 등의 체크가 필요하다.
<?
#########################################################################
# 개발자 : 전동규 #
# 메일주소 : jawebdev@gmail.com #
# 작업일 : 2011-03-08 #
# 작업내용 : 소켓통신 작업 #
#########################################################################
$go_url = "http://test.com/go_url.php";
// 전송요청 URL 바꾸지마세요.
// 이전페이지에서 값 받아온것들 목록
$go_arr['id'] = $user_id;
$go_arr['ip'] =$_SERVER[REMOTE_ADDR];
// 소켓통신용 배열로 변환
$host_info = explode("/", $go_url);
$host = $host_info[2];
$path = $host_info[3]."/".$host_info[4]."/".$host_info[5];
// 호스트,경로 맞춰 변환
srand((double)microtime()*1000000);
$boundary = "---------------------".substr(md5(rand(0,32000)),0,10);
//print_r($go_arr);
// 바운더리 코드 생성
$header = "POST /".$path ." HTTP/1.0\r\n";
$header .= "Host: ".$host."\r\n";
$header .= "Content-type: multipart/form-data, boundary=".$boundary."\r\n";
// 헤더 생성
foreach($go_arr AS $index => $value){
$data .="--$boundary\r\n";
$data .= "Content-Disposition: form-data; name=\"".$index."\"\r\n";
$data .= "\r\n".$value."\r\n";
$data .="--$boundary\r\n";
}
$header .= "Content-length: " . strlen($data) . "\r\n\r\n";
// 본문 생성
$fp = fsockopen($host, 80);
// 소켓통신 시작
if ($fp) {
$sock_return_value = "Connection Success <br>";
fputs($fp, $header.$data);
$rsp = '';
while(!feof($fp)) {
$rsp .= fgets($fp,8192);
}
fclose($fp);
$msg = trim($rsp);
}else {
$sock_return_value = "Connection Failed <br>";
}
echo $sock_return_value ;
echo "<xmp>".$msg."</xmp>";
?>
'프로그래밍 > PHP' 카테고리의 다른 글
php boolean (0) | 2011.04.18 |
---|---|
htmlentities <-> html_entity_decode (엔티티 변환, 태그변환) (0) | 2011.03.21 |
소켓통신 작업 샘플소스 (0) | 2011.03.18 |
다른쪽 데이터 작업시,다른서버 데이터 (0) | 2011.03.10 |
홈페이지 아이폰 접속시 에이전트 체크 (0) | 2011.03.09 |
트위터 php 연동.. (0) | 2011.02.16 |
댓글을 달아 주세요