Information Security

5 PHP + form 태그를 통한 데이터 전달(GET/POST) 본문

Web Hacking/Web 기초

5 PHP + form 태그를 통한 데이터 전달(GET/POST)

leeeeye321 2017. 11. 16. 02:30

WEB 1.0

HTML + Javascript

 

WEB 2.0

+Server application : PHP, python, JSP

+HTML : form 태그

 

Server side script language : PHP

1. PHP 설치

 

2. 실행

-확장자가 .php인 파일 생성

 

#php <php source file>

php 파일 실행

 

3. 기본 구조

<?php

// php 블록의 시작

....

?>

// php 블록의 끝

-모든 php 코드는 이 블록 안에 있어야 한다.

-블록은 여러 개일 수 있다.

-> 하나의 php 파일 안에 php 코드만 존재하지 않기 때문이다. (HTML, Javascript...)

 

4. 변수

-선언은 없고 정의해서 사용

-변수의 타입은 정의될 때 결정

-$변수이름

 

1) 미리 선언된 변수

-프로그램 내에서 정의된 변수들

-super_global 변수: $_SERVER, $_GET, $_POST, $_COOKIE

 

2) 외부에서 오는 변수

-프로그램 외부에서 정의되는 변수들

-GET, POST 방식을 통하여 전달되는 변수들

 

php 설정 파일 수정

 

register_globals = Off -> On

-일반 변수 -> 글로벌 변수(외부에서 오는 변수)

 

변경된 내용 적용

 

GET 방식으로 전달되는 값을 출력할 php 페이지 작성

GET

-URL을 통해서 값을 전달한다.

-전송하는 데이터가 외부에 그대로 노출된다.

-전송하는 데이터의 크기에 한계가 있다.

 

form 태그

-서버와 통신할 수 있는 창구 역할

-클라이언트의 데이터를 한 번에 서버로 전달

-form을 분석해야 전달되는 데이터가 어떤 것이 있는지, 누가 처리하는지 등을 알 수 있다.

 

속성

-method: 전달 방식 지정(Get or Post)

-action: 전달할 서버 어플리케이션

-name: 글로벌 속성, form이 여러 개 있는 경우 form을 식별하는 용도

-> 자바 스크립트에서 form 요소에 접근할 때 사용

 

input 요소

-type: 입력 형태 지정

-name: 실제 데이터가 전달될 때 변수 역할을 한다.

-value: 실제 전달될 값

 

form.html 페이지에서 내용 입력 후 join(submit) 클릭

-> 입력한 값들이 모두 서버로 전달된다.

 

-sample.php 페이지로 넘어가면서 입력한 값들이 출력되었다.

-GET 방식으로 전달받아서 주소창에 데이터가 모두 노출된다.

 

POST 방식으로 전달되는 값을 출력할 php 페이지 작성

POST

-HTTP Message Body를 통해서 값을 전달한다.

-전송하는 데이터가 외부에 노출되지 않는다.

-> 패킷을 확인해야만 외부에서 값을 확인할 수 있다.

-form을 통해서만 값을 전달할 수 있다.

-데이터의 크기에 제한이 없다.

 

form.html 페이지에서 내용 입력 후 join(submit) 클릭

 

-sample.php 페이지로 넘어가면서 입력한 값들이 출력되었다.

-POST 방식으로 전달받아서 데이터가 노출되지 않았다.

 

5. 배열

-배열 정의 후 출력

 

php 실행 결과

 

연관 배열: 지정된 키 사용

-> 2차원 배열 처럼 사용 가능

 

php 실행 결과

 


 

[실습]

PHP(Server) + HTML(Client)

1) php 코드로 한 번에 작성할 경우 html 태그를 echo안에 넣어준다.

 

2) php 코드와 html 코드를 분리해서 작성

 

-GET 방식으로 값 전달.

-type의 값이 animal이면 위의 이미지 3개 출력

 

-type의 값이 object이면 위의 이미지 3개 출력

'Web Hacking > Web 기초' 카테고리의 다른 글

7 HTML + PHP + MySQL 실습  (0) 2017.11.22
6 데이터베이스  (0) 2017.11.17
4 Javascript  (0) 2017.11.14
3 HTML 문서에서 사용되는 대표적인 태그  (0) 2017.11.14
2 웹 기초 프로그래밍(HTML)  (0) 2017.11.11