프로그래밍/PHP 29

PHP - HTML를 이용한 공격 방지

HTML을 이용한 공격 방지 HTML을 사용자가 이용하게 된다면 일부 불순한 생각을 가지신분이 자신의 실력을 돋보이게 하기위해서 종종 자바스크립트를 이용한 테러를 하게 됩니다.(무한 팝업 등) 그런 것을 방지하기위해서는 한가지 방법이 있습니다. 방법은 HTML과 자바스크립트를 무시하는 것입니다. 첫 번째 방법을 위해서는 PHP 내장함수중 strip_tags라는 함수를 알아야되는데 이 함수는 문자열에서 태그를 제거하는 함수입니다. $stirng = strip_tags(" PHP"); 를 쓰면 $string에는 “PHP”만 들어가게 됩니다. 만약에 $stirng = strip_tags(" PHP", " "); 과 같이 두 번째 인자에 를 넣게되면 은 허용한다는 뜻입니다. 그래서 $string에는 “ PHP”..

프로그래밍/PHP 2014.06.25

PHP - PHP에서 에러 메시지 처리 방법

PHP에서 에러 메시지 처리 방법 에러가 발생하는 경우는 1. 사용자가 잘못된 입력으로 인한 에러 2. 데이터베이스 관련 에러 가 있습니다. 에러 메시지를 처리하는 방법은 한가지는 에러 메시지를 출력하고 이전 페이지로 돌아가는 방법과 나머지는 에러 메시지만 출력하고 PHP 스크립트의 실행을 종료하는 방법입니다. 이 두가지 모두 해결할 수 있는 방법을 위해서 하나의 함수를 만들어 보면 다음과 같이 만들 수 있습니다. library.php파일 사용자의 잘못된 입력으로 인한 에러 처리 1. 필수 항목 미입력 에러 2. 비밀번호 오류 에러 필수 항목 미입력 에러 처리는 방금 위에서 만든 함수를 사용하기위해서 include "library.php";을 추가한다음 다음과 같이 작성하면됩니다. if(!$_POST[n..

프로그래밍/PHP 2014.06.23

PHP - MYSQL과 PHP를 이용한 게시판 속도 업그레이드 두번째

게시판 업그레이드 첫 번째에서 기존의 오름차순으로 인덱스가 정렬된 것을 내림차순으로 바꿔서 속도를 올려봤습니다. 하지만 이렇게 바꿔도 뒷페이지로 갈수록 느려진다는 단점이 있습니다. 쿼리를 하나로 말고 두 개로 쪼개서 해보는 방법으로 개선해 봅시다. 1. 100만개 레코드 중에서 50만 번째 레코드를 찾는다. 2. 찾은 레코드 번호부터 검색하여 10개의 글 목록을 가져온다. 이를 쿼리로 작성해보면 다음과 같습니다. SELECT thread FROM threadboard ORDER BY thread DESC LIMIT 500000, 1; 위 쿼리의 값을 $thread 변수에 저장하면 SELECT * FROM threadboard WHERE thread

프로그래밍/PHP 2014.06.22

PHP - MYSQL과 PHP를 이용한 계층형 게시판 만들기

계층형 게시판이란? 다음과 같이 구성되있는 게시판을 뜻합니다. 즉 답변을 달 수 있는 게시판입니다. 번호 깊이 제목 종류 300 0 세 번째 글 새 글 200 0 두 번째 글 새 글 199 1 RE : 두 번째 글 첫 번째 답변 답변 글 198 2 RE : 두 번째 글의 두 번째 답변 답변 글 197 1 RE : 두 번째 글의 세 번째 답변 답변 글 100 0 첫 번째 글 새 글 테이블 설계 데이터베이스 스키마를 다음과 같이 작성할 예정입니다. 항목 영어 항목 변수형 크기 비고 글의 번호 id int 11 글의 번호는 숫자 내부 번호 thread int 11 일정 값으로 증가하는 값 글의 깊이 depth int 11 들여쓰기를 위한 값, 답글의 갯수 글쓴이 name varchar 20 varchar는 많..

프로그래밍/PHP 2014.06.10 (6)

PHP - MYSQL과 PHP를 이용한 간단한 게시판 만들기

이번에는 PHP와 MYSQL을 이용한 간단한 게시판을 만들기입니다. 데이터베이스 항목 항목 영어 항목 변수형 크기 비고 글의 번호 id int 11 글의 번호는 숫자 글쓴이 name varchar 20 255자이하의 길지않은 문자열 이메일 주소 email varchar 30 글의 비밀번호 pass varchar 12 글의 제목 title varchar 70 글의 내용 content text 긴 문자열 글쓴 날짜 wdate datetime 날짜 및 시간 IP 주소 ip varchar 15 조회 수 view int 11 테이블 만드는 sql 구문 CREATE TABLE board ( id int(11) unsigned NOT NULL auto_increment, name varchar(20) NOT NULL..

프로그래밍/PHP 2014.06.08 (55)

PHP - MYSQL과 PHP를 이용한 방명록 만들기

MYSQL과 PHP를 이용한 방명록 만들기 방명록 테이블 설계 항목 내용 id 글번호 키 name 글쓴이의 이름 pass 글쓴이의 비밀번호 content 글의 내용 wdate 글이 등록된 날짜와 시간 sql구문 CREATE TABLE guestbook ( idint(11) UNSIGNED NOT NULL AUTO_INCREMENT, namevarchar(20) NOT NULL, passvarchar(20) NOT NULL, contenttextNOT NULL, wdatetimestampNOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=euckr; 테이블 ..

프로그래밍/PHP 2014.06.05

[php] get방식을 이용한 변수 전달

1. get 같은 페이지가 아닌 다른페이지에서 값을 넘겨 받을때 사용되어지는 방식. ex>1번페이지에서 값을 입력해 2번페이지로 넘긴다 실제로 변수를 넘겨 받는것은 상당히 중요. scanf 와 비슷하다. 값을 입력받아 전달한다. 변수를 전달하는 방법 get 과 post url주소 끝에 ?name=이름&me=이름 위에 ?는 get방식으로 전달하는 변수와 내용 인데 name은 변수 =은 전달 이름은 내용 이 됩니다. &는 변수추가 me는 변수 이름은 내용이 됩니다. 실행결과 http: //주소값 ?name=이름&me=이름 이름 님 안녕하세요 저는 이름 입니다. $_GET['변수명']

프로그래밍/PHP 2014.06.05

PHP - list() 함수 배열처럼 변수에 할당

list (PHP 4, PHP 5) list — 배열처럼 변수에 할당 설명 void list ( mixed $varname [, mixed $... ] ) array()처럼, 이 함수는 실제 함수가 아니고 언어 구조이다. list()는 한번의 조작으로 배열 목록을 지정하기 위해 사용된다. Report a bug 인수 varname 변수. Report a bug 반환값 값을 반환하지 않습니다. Report a bug 예제 Example #1 list() 예제 Example #2 list() 용례 Employee name Salary Example #3 중첩 list() 사용하기 int(1) int(2) int(3) Example #4 배열 인덱스로 list() 사용하기 다음과 같이 출력된다 (이 원소들의 ..

프로그래밍/PHP 2014.02.12