웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

18
Web Study 06 PHP - File Upload / Download Copyright© 2015 by YoWu. All rights reserved. http://luckyyowu.tistory.com ([email protected])

Transcript of 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

Page 1: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

Web Study 06

PHP - File Upload / Download

Copyright© 2015 by YoWu. All rights reserved. http://luckyyowu.tistory.com ([email protected])

Page 2: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

교양 : index 페이지

• 사용자가 특정 사이트(ex. http://cukwiki.net/~study)에 페이지를

지정하지 않고 접속했을 때 나타나는 기본 페이지

• index.php / index.html / ...

• ex) http://cukwiki.net/~uyu423

• ex) http://cukwiki.net/~uyu423/board

Page 3: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

• PHP - MySQL

• 연결 & 종료

• Database 선택

• Query 전송

• Query 실행 결과 저장

• or die()

• DB 에러 확인

• DB 사용 페이지 구성

Page 4: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

PHP - MySQL

• PHP 에서는 MySQL 연결을 위한 함수와 기능을 제공

• 크게 함수 지향, 객체 지향 두가지 방법이 있다.

• 함수 지향 : $db = mysqli_connect();

• 객체 지향 : $db = new mysqli();

• 스터디에서는 함수 지향 방식을 사용

• PHP 4 이하의 일반 mysql_* 함수와 PHP 5 이상부터 제공되는 개선된mysqli_* 함수가 있다.

Page 5: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

PHP - MySQL 연결 & 종료

• mysqli_connect("DB_ADDR", "DB_USER", "DB_PW", ["DB_NAME"]);

• PHP에서 MySQL 로 접속

• mysqli_close(연결 식별자);

• 연결 식별자가 가르키는 MySQL DB 로 접속된 연결 해제

• 연결 식별자 생략 시 가장 최근에 연결한 서버와 연결 해제

Page 6: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

PHP - MySQL DB 선택

• mysqli_select_db("DB_NAME", [연결 식별자]);

• 사용할 DB 선택

• 연결 식별자 생략시 마지막으로 연결한 DB 사용

Page 7: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

예제 - 1

Page 8: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

PHP - MySQL 쿼리 전송

• mysqli_query(연결 식별자, "QUERY");

• MySQL 에게 query문 실행시키는 함수

• 출력하는 쿼리문(SELECT, SHOW…) 의 경우 성공 시 해당 자원이반환됨

• 실행하는 쿼리문(INSERT,UPDATE…) 의 경우 성공 시논리값(true/false) 반환

Page 9: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

PHP - MySQL 반환 자원 사용

• mysqli_fetch_array(리소스 결과);

• DB에서 실행 결과를 가져오는 함수

• 결과를 한 행씩 가져와서 배열 형태로 변환

• Ex) $row['num'], $row[0]

Page 10: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

PHP 교양 : or die()

• or 명령

• 앞에서 실행한 함수에서 에러가 발생했을 경우 뒤에 나오는 함수실행

•die(message)

• exit() 함수와 동일

• Message 를 출력해주고 종료함

Page 11: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

PHP - MySQL 에러 확인

• mysqli_connect_error();

• DB 연결시(mysqli_connect) 발생한 에러 확인

• mysqli_error(연결 식별자);

• DB 사용시(쿼리 전송 등) 발생한 에러 확인

Page 12: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

예제 - 1.1 (dbconn.php)

Page 13: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

예제 - 2

Page 14: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

DB사용 페이지를 어떻게 구성하지?

• DB에 값을 입력하거나(INSERT) 수정(UPDATE, DELETE) 할 때는

왠만하면 다음의 규칙을 지킨다.

데이터입력 페이지(html, php)

DB 작업처리 페이지

(php)

처리결과확인페이지(html, php)

Page 15: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

예제 - 3 (db_first.php)

Page 16: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

예제 - 3 (db_second.php)

Page 17: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

실습

• 다음 페이지(방명록) 구현

• http://cukwiki.net/~uyu423/study/php/db_prac01.php

create table guest (

num int unsigned not null primary key auto_increment,

name varchar(20) not null,

cont text not null,

date datetime not null );

Page 18: 웹 개발 스터디 01 - PHP 파일 업로드, 다운로드

과제

회원가입 페이지 완성 (회원가입시 DB에 정보 저장, 암호화)

• 로그인 페이지 완성 (로그인시 DB에서 확인, 세션 생성)

• 로그인 - 회원가입 - 방명록(실습) 연동 및 Bootstrap으로 꾸미기

• 방명록은 로그인한 사람만 접근 가능

• 글쓴이 정보는 로그인한 회원정보의 기본키를 사용해 조회, 사용

• 페이지는 데스크탑 / 모바일에서 반응형으로 작동해야함

• nl2br(), trim(), htmlspecialchars() 함수 조사하고 방명록 페이지에 사용