3강 ~ 27강
1. PHP
- php.ini : 이 파일의 설정을 바꾸는 것을 통해 php의 기본 동작 방법을 바꿀 수 있음
<.html>
웹 브라우저에 html 파일 요청 -> 웹 서버가 확장자를 확인하여 html임을 확인 -> htdocs 디렉터리에서 html 파일을 읽어서 웹 브라우저에 전송 -> 웹 브라우저는 그 코드 해석하고 화면에 표시
<.php>
웹 브라우저에 php 파일 요청 -> 웹 서버에서 php는 자신의 소관이 아님을 확인 -> php라는 프로그램에 php 파일 위임 -> htdocs 디렉터리 안에 있는 php 파일을 열어서 php 문법에 따라 html 파일을 만들어냄 -> 만들어진 html 파일을 웹서버가 웹 브라우저에 전달
<?php
코드
?>
2. 데이터 타입
1) 숫자
- integer (정수)
- float (부동소수점)
코드 예시
<?php
echo 1;
print(1);
echo 1+1;
echo 2-1;
echo 2*2;
echo 4/2;
?>
2) 문자열
- string (문자열)
- .으로 문자열 합칠 수 있음
코드 예시
<?php
echo 'Hello world';
echo "Hello world";
echo "Hello \"w/\"orld";
echo "Hello "."world";
?>
3) Boolean
- True / False
4) 비교 연산자
- == : 좌항과 우항이 같으면 True, 다르면 False
cf) var_dump : 입력값을 출력하고 입력값의 데이터 타입을 알려줌
3. 변수
- $ 이용하여 변수 표현
코드 예시
<?php
$a = 10;
echo $a+10;
?>
4. URL 파라미터
- URL 끝에 ?변수이름=내용 추가
- $_GET['변수이름']; : 입력으로 URL 파라미터 가져옴
ex) <?php echo $_GET['변수이름']; ?>
- 여러가지 파라미터 추가를 한다면 &로 구분
ex) 127.0.0.1/parameter.php?name=egoing&address=서울
5. 함수
1) 내장함수
- strlen(문자열) : 문자열 길이
- nl2br(문자열) : 자동 줄바꿈
- file_get_contents(파일이름) : 파일을 읽어들임
2) 함수
function 함수이름(parameter) { // 선언
statement
}
함수이름(argument); // 실행
6. 조건문
if (expr)
statement
- exp가 true면 statement를 실행, 아니면 실행 x
- else 도 이용 가능
- isset($var) : 함수의 값으로 들어온 값이 있으면 True, 없으면 False
7. 반복문
1) while문
while (expr)
statement
- expr가 true일 동안 statement 실행
8. 배열
코드 예시
$변수이름 = array('값1', '값2', '값3'... ); // 선언
echo $변수이름[2]; // 출력
array(
key1 => value1,
key2 => value2,
...
)
- count(배열) : 배열의 원소의 수를 구함
- arrary_push(배열, '추가할 값') : 배열에 원소 추가
- scandir(스캔하려는 디렉터리) : 디렉터리 내의 파일들과 디렉터리를 배열로 만듦
9. form과 POST
- 사용자로부터 정보를 받아서 서버로 전달할 때 사용
- 사용자가 입력한 정보를 URL 파라미터로 만들어냄
- <form action="주소"> : 폼에서 작성된 데이터를 주소로 전송
- URL을 통해 데이터를 전송하는 방식은 사용자가 데이터를 서버로 보낼때 또는 지울 때 사용하면 안됨
ㄴ 어떤 내용을 다른 사람들과 공유할 때 사용할 때 적합
ㄴ form 태그에서 속성 method="post"라고 하면 해결 가능
- post 방식 : $_POST
- get 방식(기본) : $_GET
10. 글 작성
1) 글 생성
- header(주소) : 사용자를 다른 주소로 보냄
ex) header('Location: /index.php?id='.$_POST['title']);
2) 글 수정
- rename(기존이름, 새이름) : 파일의 이름을 바꿈
cf) <?php echo $_GET['id']; ?> -> <?=$_GET['id']?> 으로 간결하게 나타낼 수 있음
3) 글 삭제
- unlink(파일이름) : 파일 삭제
11. 파일로 모듈화
- 리팩토링 : 코드를 효율적으로 정리하는 것
- require(파일이름) : 외부 파일을 가져다 사용 가능
- 모든 페이지를 통합적으로 관리 가능
- require 대신 require_once를 사용하는 것이 에러 발생의 가능성도 적고 더 편리함
12. 보안 XSS
- XSS (Cross Site Scripting) : 웹사이트에 스크립트를 주입하는 것
- 사용자를 다른 사이트로 보내거나 로그인 대신하거나 글 지우는 등의 행위가 발생할 수 있음
- htmlspecialchars : 스크립트를 그대로 출력
ㄴ 사용자가 입력한 정보가 출력되는 부분에 htmlspecialchars를 적용하면 막을 수 있음
13. 보안 파일 경로 보호
- basename() : 파일의 경로에서 파일명만 추출
ㄴ 부모 디렉터리로 가는 걸 방지 가능
'WEB > 웹 프로젝트' 카테고리의 다른 글
[8주차] 웹프로젝트 진행 (0) | 2022.02.19 |
---|---|
[6주차] 웹프로젝트 진행 (0) | 2022.02.06 |
[4주차] 웹프로젝트 진행 (0) | 2022.01.23 |
[생활코딩] DATABASE - MySQL 정리 (0) | 2022.01.09 |
[웹프첫] 기말과제 - 웹페이지 제작 (0) | 2021.07.10 |
댓글