PHP

상태
시작 전
담당자
날짜
숫자
0
인증 : 사용자가 누구인지 확인하는 절차.
인가 : 사용자가 인증을 받은 후, 해당 사용자가 어떤 권한을 가질 수 있는지 결정하는 과정.
무결성 : 데이터가 허가되지 않은 변경 없이 정확하고 완전한 상태를 유지하고 있음을 보장하는 것.

PHP, HTML, CSS, JS의 연관성

HTML (Hypertext Markup Language): 웹 페이지의 구조를 정의합니다. 텍스트, 이미지, 링크 등의 요소를 포함하며, PHP는 HTML 내에서 동적으로 데이터를 생성하거나 페이지를 구성하는 데 사용됩니다. 예를 들어, 데이터베이스에서 불러온 정보를 HTML로 출력할 때 PHP를 사용합니다.
CSS (Cascading Style Sheets): HTML로 작성된 페이지의 스타일(색상, 글꼴, 레이아웃 등)을 지정합니다. PHP는 동적으로 CSS 파일을 생성하거나 특정 조건에 따라 스타일을 변경할 수 있습니다.
JavaScript: 클라이언트 측에서 실행되는 언어로, 페이지에 동적인 요소를 추가합니다. PHP와 달리 JavaScript는 브라우저에서 실행되며, 사용자 상호작용에 반응합니다. PHP는 서버에서 데이터를 처리하고, 그 데이터를 JavaScript로 전달하여 페이지에 실시간으로 반영할 수 있습니다.
PHP (Hypertext Preprocessor): 서버에서 실행되어 HTML을 생성하거나 사용자 입력을 처리하는 데 사용됩니다. 예를 들어, 로그인 시스템, 데이터베이스 연동 등을 구현할 때 PHP를 사용하여 HTML을 동적으로 생성하고, CSS와 JavaScript로 결과를 사용자에게 보여줍니다.

PHP의 특징

웹 개발에 널리 사용
오픈소스 범용 서버 측 스크립트 언어
동적 웹 페이지 생성
HTML 및 자바스크립트 코드 포함
PHP 스크립트가 사용되는 주요 영역
서버 측 개발
명령줄 사용을 위한 스크립팅
데스크톱 애플리케이션 개발
PHP 스크립트를 처리하려면 웹 브라우저에 출력할 수 있는 HTML 문서로 생성해야 하므로 이를 위해 PHP 해석기(인터프리터) 설치해야함.
PHP 스크립트로 작성된 웹 페이지를 실행하여 웹 브라우저에 나타내려면 웹 서버 설치 필요
데이터베이스와의 상호작용을 위해 데이터베이스 설치 필요
XAMPP : 웹 서버, MySQL, 데이터베이스 엔진, PHP 및 Perl 프로그래밍 패키지로 구성된 오픈소스 크로스 플랫폼 웹 서버
X : 크로스 플랫폼 운영체제 의미, 윈도우, 맥, 리눅스 등 모든 OS에서 실행 가능
A : Apache를 의미하며 웹 서버 소프트웨어임을 나타냄
M : MySQL 데이터베이스 의미
P : PHP를 의미
P : Perl 스크립팅 언어 의미
1.
클라이언트가 서버에 웹 페이지 요청
2.
서버가 PHP 엔진에 로직 처리 요청
3.
PHP 엔진이 데이터베이스에 연동
4.
PHP 엔진은 서버에 처리 결과 전송
5.
서버가 클라이언트에 HTML문서로 전달
6.
웹 브라우저가 HTML을 보여줌
클라이언트와 서버 사이의 관계 : 인터넷
상수
주어진 값을 일정하게 가진 것으로 문자열, 정수, 실수 등이 상수에 속함
문자열 : 큰따옴표로 감싼 하나 또는 여러 개의 문자
정수 : 양수, 음수, 0으로 구성된 수
실수 : 소수점 값을 가진 수
변수
입력하는 값에 따라 내용이 변하는 것으로 상수와 반대되는 개념
PHP에서 변수는 $로 시작, 변수명은 로마자나 소문자, 숫자, _를 조합해서 작성
한글이나 특수문자를 사용 X, 숫자로 시작 X
HTML5 문서에 <?php로 시작하고 ?>로 끝나는 PHP문을 넣을 수 있음
?php문의 따옴표 안에 HTML5의 태그도 넣을 수 있음
$filename = “파일 경로”;
큰따옴표 ("): 변수와 이스케이프 시퀀스(예: \n, \t)를 해석하고 치환합니다.
작은따옴표 ('): 변수를 치환하지 않고, 있는 그대로의 문자열로 출력합니다.
“” 안에 “”를 또 넣을 시 오류 발생, 이를 해결하기 위해서는
1.
작은 따옴표 (’ ’) 사용
2.
이스케이프 문자 사용

시험문제

localhost와 같은것은 무엇인가? 127.0.0.1

이스케이프 문자

\” = “ (큰따옴표)
\n = 줄 바꿈
\t = 탭
\\ = \(역슬래시)
\$ = $(달러 기호) → 화면에 달러 기호를 그대로 출력하기 위해

echo문 약식으로 표기

<?php $id ?> = <?=$id?>

문자열 연산자

문자열 연산자 = .
예시 ) $a.$b = 문자열 $a와 문자열 $b를 연결하여 하나의 문자열로 만듦.

폼 양식 생성

<form> 태그 : 사용자가 입력한 데이터를 서버로 보내는 웹 폼 정의
action: 폼 데이터를 전송할 서버의 URL을 지정.
method: 데이터를 전송할 HTTP 메서드 지정. 주로 GETPOST가 사용됨
GET: URL에 데이터를 포함시켜 전송 (주소에 쿼리 스트링이 붙음).
POST: 데이터를 HTTP 요청 본문에 포함시켜 전송 (보안이 더 나음).
enctype: 폼 데이터의 인코딩 타입을 지정. 파일 전송 시 multipart/form-data 사용.
대학생학대 그만해라 진짜 크아아아악
<input> 태그 : 사용자 입력을 받을 수 있는 여러 유형의 입력 필드 정의
type: 입력 필드의 유형을 지정. (예: text, password, email, submit, file 등).
name: 입력 필드의 이름을 지정하며, 폼 데이터 전송 시 키로 사용됨.
value: 필드에 미리 지정된 을 설정.
type = “hidden” 속성 : 웹 브라우저에 대한 내용이 나타나지 않는 부분이 생김.
Radio Button (단일 선택)
<input type="radio">
모든 inputname 속성이 동일하고, 하나의 옵션만 선택 가능
한 항목을 선택하면 다른 항목이 자동으로 해제
설문에서 하나의 선택지만 가능할 때 적합
Check Box (다중 선택 가능)
<input type="checkbox">
모든 inputname 속성은 같아도 여러 개의 항목을 선택 가능
각 체크박스는 독립적으로 선택되고, 여러 항목을 동시 선택 가능
하나 이상의 선택지를 허용해야 할 때 적합
예시 동작:
$_POST[”name”]태그 : <input> 태그의 name 속성의 값
POST 메서드로 전송된 데이터를 저장하는 연관 배열
"name"HTML 폼의 input 태그에서 지정한 name 속성을 가리키며, 이 값을 통해 서버에서 해당 데이터를 식별
$name = $_POST["name"];
<select> 태그 : 드롭다운 리스트(선택 상자) 정의
name 속성 : 묶을 목록 이름
<option> 태그 : <select> 태그 안에서 드롭다운 리스트 항목 정의
하이퍼링크 : 웹 문서 (내부 문서 _로컬 서버, 외부 문서 _ 외부 서버)연결
href : hyperlink reference로써 하이퍼링크 속성을 정의. <a>태그와 함께 사용하며, 하이퍼링크 경로 지정에 사용됨.
radio button
몇 개가 있더라도 하나만 선택
웬만하면 초기에 선택한 것이 하나가 있어야함
원 모양에 체크가 되면 점
check box
몇 개가 있더라도, 선택할 수도, 안할수도, 일부만 선택할 수도 있음
초기에 선택한 것이 있어도 되고, 없어도 됨.

쿠키

정의 : 사용자가 웹 페이지에 접속할 때, 웹 서버가 사용자의 컴퓨터에 저장하는 작은 양의 데이터 (텍스트 형태)
용도 :
1.
웹 페이지에서는 쿠키를 확인하여, 로그인 상태나 장바구니에 상품이 담겨 있는지 확인
2.
웹 서버는 쿠키를 사용자의 컴퓨터에 저장한 뒤, 쿠키가 필요할 때 사용자의 컴퓨터에 요청하고, 사용자의 컴퓨터는 저장된 쿠키를 웹 서버에 전송
장점 :
1.
특정 웹 사이트를 재방문하거나, 웹 사이트 내 다른 페이지 이동할 때, 다시 로그인할 필요 X
2.
사용자의 컴퓨터에서 아이디나 비밀번호 기억
3.
사용자의 웹 페이지 이용 패턴 분석
데이터의 위치, 쿠키의 위치, 데이터 가공이 모두 사용자의 컴퓨터에서 이루어짐
setcookie()함수
형식 : bool setcookie(string name, string value, int expire, string path)
인자 :
name : 쿠키 이름이며 대문자와 소문자 구분
value : 쿠키 값, 사용자의 컴퓨터에 저장
expire : 쿠키 유효 시간, 초 단위로 표시 예) time()+60*60*24*30 → 30일 동안 쿠키 값 유지
path : 쿠키를 이용할 수 있는 경로 의미
기본 값 : 현재 디렉터리
/: 전체 도메인에서 쿠키 사용 가능
/home / [home] : 디렉터리와 하위 디렉터리에서 쿠키 사용 가능
반환값 : 성공 = true, 실패 = false

세션

사용자의 컴퓨터에 정보가 저장되는 쿠키와 달리 세션은 보안을 이유로 사용자의 컴퓨터와 웹 서버에 모두 정보 저장
웹 사이트를 방문하는 사용자의 컴퓨터에는 세션 ID 정보를 저장하고, 웹 서버에는 사용자의 컴퓨터 세션 ID에 대응되는 세션 정보 저장
사용자의 컴퓨터 세션 ID가 유출되더라도 별다른 정보가 없고 주요 정보가 웹 서버에 저장되어 있기 때문에 쿠키보다 보안성이 강함
데이터의 위치, 세션 정보의 위치, 데이터 가공이 모두 웹 서버에서 이루어지며 세션 정보의 위치는 사용자의 컴퓨터에서도 이루어짐. 하지만 서로 대응되는 정보가 같지 않음

데이터베이스_데이터베이스 관리 시스템

데이터베이스 관리 시스템 (DBMS) : 응용 프로그램이 요청한 사항을 데이터베이스와 통신하면서 처리 종류 : MySQL, MSSQL, Oracle, Infomix 등

MySQL

DBMS 중에서도 관계형 데이터베이스 관리 시스템(RDBMS)에 속함
RDBMS는 테이블 형태로 데이터를 저장하고, 이 데이터 간의 관계를 정의하는 것
RDBMS의 모든 데이터는 2차원 테이블에 저장된 후 검색, 수정, 삭제 가능
RDBMS의 세 가지 기본 구성 요소
테이블 : DB에서 데이터를 저장하고 관리하는 기본 단위
필드 : 테이블의 열
레코드 : 테이블의 행
장점
가장 많이 사용하는 데이터베이스
무료로 사용
DBMS 중에서도 처리 속도 상당히 빠른 편
설치 및 사용 방법 쉬워 초보자가 쉽게 접근 가능
대용량 데이터도 손쉽게 처리 가능
보안성 뛰어남
데이터베이스 테이블 관리
num, id, pass, name, age로 설정 num 필드는 회원 한 사람의 데이터 : 레코드에 붙이는 고유 번호
char : 문자를 저장하기 위한 데이터형, char(20)은 로마자나 숫자를 20자 (한글은 10자)까지 저장할 수 있는 공간
null : 데이터 값이 없는 데이터형, “”또는 ‘’로 표기
어떤 필드가 not null이라면? : ‘null이면 안된다’
not null로 설정된 필드 = 레코드에 데이터를 입력할 때 해당 필드를 비우면 안됨 (반드시 값을 채워야함)
예) 웹 사이트에서 회원 가입을 할 때의 필수 항목을 not null로 설정, 회원 정보 테이블에서는 num, id, pass, name 필드가 필수 항목 : not null
추가 사항
auto_increment는 레코드에 데이터를 입력할 때 필드 값이 자동으로 증가
예 ) num 필드가 auto_incremen로 설정
레코드에 데이터를 입력할 때 num 필드에 값을 입력하지 않아도 0부터 1씩 값이 자동으로 증가 그 값이 num 필드에 저장된다는 의미
primary key(주 키)
테이블의 필드 중 중복되면 안되는 필드 : 레코드를 식별하는 데 사용되는 필드 auto increment가 적용된 필드 : 반드시 그 필드를 주 키로 사용 예 ) 웹 사이트에서 회원 가입 양식을 작성할 때, 주로 아이디나 일련 번호를 사용하여 레코드, 여기서는 num 필드를 주 키로 설정.

데이터베이스 테이블 생성

create table 명령 : 필드명1, 필드명2, …를 구조로 가진 DB 테이블인 ‘테이블명’ 생성
primary key(필드명) : ‘필드명’이 주 키라는 의미
desc(테이블명) : 테이블을 보여줌
테이블에 새로운 필드를 추가하는 명령 alter table 테이블명 add 새로운필드명 필드데이터형 [first 또는 after 필드명];
num 테이블에 email 필드를 char(30) 데이터형으로 추가하려면? > alter table mem add email char(30);
필드 삭제하기
alter table 테이블명 drop 삭제할_필드명1, 삭제할_필드명2;
> alter table mem drop email;
새로운 필드 수정하기 : 테이블의 특정 필드를 새로운 필드로 수정
alter table 테이블명 change 수정할_필드명 새로운_필드명 필드_데이터형;
> alter table mem change age phone char(20);
필드 데이터형 수정하기
alter table 테이블명 modify 필드명 수정할_데이터형; > alter table mem modify phone int;
테이블명 바꾸기 alter table 테이블명 rename 바꿀_테이블명;