1. PHP 파일 경로 지정자 제거

입력값에 경로 지정자가 있는지 검사한다.
만약 있을 경우를 대비하여, 제거해준다.

../../etc/passwd -> etc/passwd 이런식으로 제거해주는 코드를 작성한다.

basename()를 이용하여, 파일명만 뽑아내자
if( basename($_GET['filename']) == $_GET['filename'] ){

}
else{

}
위 코드는 filename에 다른 파일 경로 지정자가 입력되었는지 검사할 수 있다.



2. PHP 정규 표현식으로 이메일 유효 검사


if( !eregi('^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $email) ){


}

else{


}



3. 줄바꿈 문자열 \n을 HTML <br />로 변경하기


nl2br()



4. 문자열 필터링

addslashes() : 이스케이프가 안되어 있다면, addslashes()를 이용하여 \를 \\로 바꿔주는 함수

stripslashes() : \\를 \로 바꿔주는 함수

get_magic_quotes_gpc() : 자동으로 이스케이프를 해주었는지 검사

htmlspecialchars() 

htmlentities() : 모든 특수문자를 HTML 엔티티로 변환



5. MySQL


데이터베이스 접속

(1) 객체지향 방식

@ $db = new mysqli('localhost', 'users', 'passwd', 'dbname');

(2) 절차지향 방식

@ $db = mysqli_connect('localhost', 'users', 'passwd', 'dbname');


@는 에러를 무시한다는 뜻


데이터베이스 선택

mysql> use dbname;

(1) 객체지향 방식

$db->select_db('dbname');

(2) 절차지향 방식

mysqli_select_db( $db, 'dbname');


질의

(1) 객체지향 방식

$result = $db->query($query);

(2) 절차지향 방식

$result = mysqli_query($db, $query);


질의 결과 행의 수

(1) 객체지향 방식

$num_results = $result->num_rows;

(2) 절차지향 방식

$num_results = mysqli_num_rows($result);


질의 결과 접근

(1) 객체지향 방식

$row = $result->fetch_assoc();

(2) 절차지향 방식

$row = mysqli_fetch_array($result);


접근 방식에 대해서는

$result->fetch_row($result);

mysql_fetch_row($result);

$result->fetch_object();

mysqli_fetch_object();

등을 찾아볼것


데이터베이스 접속 끊기

(1) 객체지향 방식

$result->free();

$db->close();

(2) 절차지향 방식

mysqli_free_result($result);

mysqli_close($db);



서버 루트 경로

echo $_SERVER['DOCUMENT_ROOT'].'<br />';




'php' 카테고리의 다른 글

mongodb + rockmongo with php in ubuntu  (0) 2013.01.08
php file upload 와 mysql blob  (0) 2013.01.02
xml to json 변환  (0) 2012.12.20
sms 인증보내기 php 소스  (0) 2012.12.19
[php] 변수명 앞에는 $를 꼭 붙이자  (0) 2012.11.11
Posted by Нуеоп