웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
교육용 메모장 #2
2000.07.10 15:31
4. 라이브러리(library) 만들기
라이브러리가 무엇일까요?
많이 쓰이는 기능을 따로 모아두면 매우 편리하게 쓸수 있겠죠?
예를 들어 MySQL DB에 접속하는 기능, 입력받은 문자열이 빈문자열인지 아닌지 입력하는 등의 기능을 함수(function)로 만들어서 따로 모아놓은 것이 라이브러리입니다.
메모장에서는 어떤 함수가 필요할까요?
우선 MySQL DB에 접속하는 함수가 필요합니다.
그리고 빈문자열인지 아닌지 검사하는 함수가 필요하죠.
HTML 태그를 일반 텍스트로 출력하는 함수와 어떤 에러가 났을 때 브라우저에 출력하는 함수가 필요합니다.
그럼 각각의 함수에 대하여 알아봅시다.
i. MySQL DB에 접속하는 함수.
MySQL DB에 접속하기 위해서 사용하는 함수는 mysql_connect() 함수입니다.
$connect=mysql_connect("DB서버주소","DB 아이디","DB비밀번호");
그리고 자신의 DB를 선택하는 함수는 mysql_select_db()입니다.
mysql_select_db("DB이름");
그럼 자신의 MySQL DB에 접속하여 자신에게 할당된 DB를 선택하는 것을 알아봅시다.
$connect=mysql_connect("DB서버주소","DB 아이디","DB비밀번호") or die(mysql_eerror());
mysql_select_db("DB이름");
위의 두줄만 있으면 자신의 DB에 접속할수 있습니다. 간단하죠?
$connect 변수에는 DB에 접속했을 때 결과값이 들어값니다.
만약 제대로 접속이 되지 않았다면 0이, 성공적으로 접속이 되었다면 1이라는 값이 들어값니다.
ii. 입력된 문자열이 비어있는 지를 검사하는 함수.
메모장에서 입력을 받는 것은 이름과 내용 2가지입니다.
만약 이 2가지중 하나라도 빈칸, 또는 스페이스바만 쳐서 입력을 한다면 검사를 해서 막아야 겠죠?
function isBlankStr($str) {
if(eregi("[^[:space:]]",$str)) return 0;
return 1;
}
위에서 eregi("[^[:space:]]",$str) 이라는 부분이 보이시죠?
이 부분은 정규표현식이라고 불리우는 것입니다.
eregi() 라는 함수는 문자열 변수에 찾고자 하는 값이 있는지 없는지를 검사합니다.
[^[:space:]] 는 space, 즉 빈문자열이 아닐 때 0 이라는 값을 리턴하게 하는것입니다.
만약 아무 글자라도 한 글자 이상 있게 된다면 0 이 리턴되고 아무 글자도 없이, 그냥 공백만 있다면 1을 리턴하게 됩니다.
iii. HTML 태그를 일반 Text 로 변환
메모장 내용중에 잘못된 HTML 태그나 일부러 잘못쓴 태그가 들어가게 된다면 화면이 깨어질수가 있습니다.
예를 들어 <script 라고만 입력한다면 그 다음부터는 아무것도 출력이 되지 않습니다.
그렇기 때문에 모든 태그를 막아야 합니다.
막는 방법은 간단합니다. <를 < 로 바꾸어주기만 하면 됩니다.
그럼 브라우저상에서는 < 로 출력이 되기 때문입니다.
function del_html ($str)
{
$str = str_replace( ">", ">",$str );
$str = str_replace( "<", "<",$str );
$str = str_replace( """, """,$str );
return $str;
}
iv. 에러 표시하기
CGI상에서 에러가 날 경우 화면에 표시를 해야합니다.
위의 i,ii,iii에서 에러가 나면 자바스크립트를 이용해서 Alert, 즉 경고메세지를 보여주는 함수를 만들어봅시다.
function message ($message)
{
echo "
<script>
window.alert ("$message");
history.go(-1);
</script>
";
}
라이브러리가 무엇일까요?
많이 쓰이는 기능을 따로 모아두면 매우 편리하게 쓸수 있겠죠?
예를 들어 MySQL DB에 접속하는 기능, 입력받은 문자열이 빈문자열인지 아닌지 입력하는 등의 기능을 함수(function)로 만들어서 따로 모아놓은 것이 라이브러리입니다.
메모장에서는 어떤 함수가 필요할까요?
우선 MySQL DB에 접속하는 함수가 필요합니다.
그리고 빈문자열인지 아닌지 검사하는 함수가 필요하죠.
HTML 태그를 일반 텍스트로 출력하는 함수와 어떤 에러가 났을 때 브라우저에 출력하는 함수가 필요합니다.
그럼 각각의 함수에 대하여 알아봅시다.
i. MySQL DB에 접속하는 함수.
MySQL DB에 접속하기 위해서 사용하는 함수는 mysql_connect() 함수입니다.
$connect=mysql_connect("DB서버주소","DB 아이디","DB비밀번호");
그리고 자신의 DB를 선택하는 함수는 mysql_select_db()입니다.
mysql_select_db("DB이름");
그럼 자신의 MySQL DB에 접속하여 자신에게 할당된 DB를 선택하는 것을 알아봅시다.
$connect=mysql_connect("DB서버주소","DB 아이디","DB비밀번호") or die(mysql_eerror());
mysql_select_db("DB이름");
위의 두줄만 있으면 자신의 DB에 접속할수 있습니다. 간단하죠?
$connect 변수에는 DB에 접속했을 때 결과값이 들어값니다.
만약 제대로 접속이 되지 않았다면 0이, 성공적으로 접속이 되었다면 1이라는 값이 들어값니다.
ii. 입력된 문자열이 비어있는 지를 검사하는 함수.
메모장에서 입력을 받는 것은 이름과 내용 2가지입니다.
만약 이 2가지중 하나라도 빈칸, 또는 스페이스바만 쳐서 입력을 한다면 검사를 해서 막아야 겠죠?
function isBlankStr($str) {
if(eregi("[^[:space:]]",$str)) return 0;
return 1;
}
위에서 eregi("[^[:space:]]",$str) 이라는 부분이 보이시죠?
이 부분은 정규표현식이라고 불리우는 것입니다.
eregi() 라는 함수는 문자열 변수에 찾고자 하는 값이 있는지 없는지를 검사합니다.
[^[:space:]] 는 space, 즉 빈문자열이 아닐 때 0 이라는 값을 리턴하게 하는것입니다.
만약 아무 글자라도 한 글자 이상 있게 된다면 0 이 리턴되고 아무 글자도 없이, 그냥 공백만 있다면 1을 리턴하게 됩니다.
iii. HTML 태그를 일반 Text 로 변환
메모장 내용중에 잘못된 HTML 태그나 일부러 잘못쓴 태그가 들어가게 된다면 화면이 깨어질수가 있습니다.
예를 들어 <script 라고만 입력한다면 그 다음부터는 아무것도 출력이 되지 않습니다.
그렇기 때문에 모든 태그를 막아야 합니다.
막는 방법은 간단합니다. <를 < 로 바꾸어주기만 하면 됩니다.
그럼 브라우저상에서는 < 로 출력이 되기 때문입니다.
function del_html ($str)
{
$str = str_replace( ">", ">",$str );
$str = str_replace( "<", "<",$str );
$str = str_replace( """, """,$str );
return $str;
}
iv. 에러 표시하기
CGI상에서 에러가 날 경우 화면에 표시를 해야합니다.
위의 i,ii,iii에서 에러가 나면 자바스크립트를 이용해서 Alert, 즉 경고메세지를 보여주는 함수를 만들어봅시다.
function message ($message)
{
echo "
<script>
window.alert ("$message");
history.go(-1);
</script>
";
}
댓글 18
제목 | 글쓴이 | 날짜 |
---|---|---|
트랙백 구현하기 - 2. 트랙백의 형식 | TheMics | 2004.04.22 |
트랙백 구현하기 - 2. 트랙백의 형식 | TheMics | 2004.04.22 |
PHP5 RC2 Released. [4] | 써니루루☆ | 2004.04.27 |
PHP 4에서 PHP 5로 이행 [5] | 이종현 | 2004.04.30 |
포털사이트 처럼 시스템 점검중 만들기 [3] | http://zentoo.com | 2004.05.14 |
팁 아닌 팁 한달전... | http://zentoo.com | 2004.05.15 |
[국밥PHP] 1-1(1). 개념정리 Break Time (Build 1) [7] | 9000㎒ | 2004.05.18 |
PHP로 구현하는 음악 감상실 [9] | 컴도미 | 2004.05.21 |
초간단 설문조사 소스 [3] | 이혁 | 2004.05.27 |
해당 ftp 파일 서버에서 다른곳의 ftp 파일 서버로 백업용도 및 전송하기.. [9] | 김동욱 | 2004.05.30 |
초간단 스팸방지 하면서 곧바로 메일 보내기 [3] | U2em | 2004.05.31 |
윈도우계정에서 현재 남은 용량과 DB 용량 알기 [6] | 지으니 | 2004.05.31 |
주식정보출력코드 [2] | 김재경 | 2004.06.01 |
1. 연산자 [2] | 티다 | 2004.06.02 |
2. array [5] | 티다 | 2004.06.02 |
게시판내용에 코멘트를 달자!! [3] | 헉스 | 2004.06.02 |
게시판내용에 코멘트를 달자!! -2- [1] | 헉스 | 2004.06.02 |
게시판내용에 코멘트를 달자!! -마지막- [2] | 이혁 | 2004.06.03 |
응용편 - BMI 측정 테스트 소스를 만들어보자 [5] | 티다 | 2004.06.04 |
3. if문 [13] | 티다 | 2004.06.05 |