본문 바로가기
WEB/웹 프로젝트

[생활코딩] WEB2-PHP 정리

by 단월໒꒱ 2022. 1. 3.

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() : 파일의 경로에서 파일명만 추출

  ㄴ 부모 디렉터리로 가는 걸 방지 가능

 

 

댓글