본문 바로가기
프로그래밍/PHP

Internet Services - WWW ( 자동으로 게시판에 글기재하기 )

by 백룡화검 2010. 4. 23.
게시판이나 다른 곳에 자동으로 글을 기재하는 것은 프로그래머 입장에서는 참 재미있는 것 같습니다.

어째든 이번에는 웹에 대한 이해을 위하여 게시판에 글을 기재하는 프로그램을 만들어 보겠습니다.

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();
}

Source :
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