게시판이나 다른 곳에 자동으로 글을 기재하는 것은 프로그래머 입장에서는 참 재미있는 것 같습니다. 어째든 이번에는 웹에 대한 이해을 위하여 게시판에 글을 기재하는 프로그램을 만들어 보겠습니다. autobbs.php을 보시면 해당 소스가 아주 간단한 것을 볼 수 있을 것입니다. 나머지는 제가 심여을 기울려 만든 HTTP class에서 모든 답을 찾을 수 있을 것 같습니다. HTTP class 1. GET, HEAD, POST 방식을 통한 접근 가능 2. POST 설정값 Setting 가능 3. Cookie 설정 가능 Web Server와의 Connection후에 request >> POST /bbs/right04_cmd.php HTTP/1.0 Cookie: USER_ID=smson;USER_NAME=손상모; Host: www.ihelpers.co.kr Accept: */* Connection: Keep-Alive User-Agent: iHelpers Content-type: application/x-www-form-urlencoded Content-length: 56 NAME=손상모&SUBJECT=test&CONTENT=test respose >> HTTP 1.0 200 OK Date : Sat~~~ 여기서 우리는 어떤 행동을 하려고 하는가에 따라서 request를 작성하여 전송후 해당 webserver의 response number값에 따라 결과을 판단할 수 있습니다. 아래는 httpclass.php중에서 가장 중요한 post 부분의 일부분입니다. 나머지는 해당 소스 분석을 해 보시면 될 것 같습니다.
// Read Post ( form )
function Post($Url ,$Data,$Cookie = "")
{
$this->Url = $Url;
fputs ($this->Socket, "POST ".$this->Url." HTTP/1.0\r\n");
if($Cookie != ""){
$this->PutCookie($Cookie);
}
$this->PutHead();
fputs ($this->Socket, "Content-type: application/x-www-form-urlencoded\r\n");
$out = "";
while (list ($k, $v) = each ($Data))
{
if(strlen($out) != 0) $out .= "&";
$out .= rawurlencode($k). "=" .rawurlencode($v);
}
fputs ($this->Socket, "Content-length: ".strlen($out)."\r\n\r\n");
fputs ($this->Socket, "$out");
fputs ($this->Socket, "\r\n");
return $this->Read();
}
http://www.ihelpers.co.kr/util/network/autobbs.php.txt
http://www.ihelpers.co.kr/util/network/httpclass.php.txt
Reference Site :
http://www.phpbuilder.com/snippet/detail.php?type=snippet&id=18
http://www.phpbuilder.com/snippet/detail.php?type=snippet&id=352
Reference Data :
Php4 Manual.pdf
RFC 1945
출처 : 아이헬퍼스
'프로그래밍 > PHP' 카테고리의 다른 글
php_soap.dll (0) | 2010.04.23 |
---|---|
PHP 문서화 툴 phpDocumentor (0) | 2010.04.23 |
iframe 높이 자동 조절하기 (0) | 2010.04.23 |
실시간 상담용 채팅프로그램 , AJAX,웹서버에 부하없는. (1) | 2010.04.23 |
스팸글 방지법 (0) | 2010.04.23 |