설치한 아파치 서버의 기본 웹 홈 디렉터리는
/var/www/html 이다.
여기에 페이지를 만들고 확인 해 볼 것이다.
(기본 웹 홈 디렉터리)
이 위치에 exam.php 파일을 vi 편집기를 통해 만들어준다.
(exam.php 파일 생성)
* php 코드 문법
- php는 <?php ?> 태그 안에 써준다.
<?php
echo (출력 명령문)
. (문자열과 문자를 연결해주는 연산자 )
?>
변수는 앞에 $를 붙여준다.
string 변수에 문자열을 넣어서 출력해주는 코드를 적었다.
(간단한 PHP 코드)
이 파일을 실행 시키는 방법은 두 가지다.
1. php 실행기를 이용해서 실행한다.
2. 웹 브라우저를 통해 실행한다.
먼저 PHP실행기를 이용해 실행해 보겠다.
#> php exam.php
(PHP 실행한 모습)
두 줄을 적어보겠다.
(PHP 코드)
이 번에는 이 파일을 웹 브라우저에서 실행해보겠다.
(실행 모습)
위 코드는 두 줄로 나오지 않았는데
이건
웹브라우저에서랑 PHP 실행기에서의 명령문이 조금씩 다르다.
웹브라우저에서 줄바꾸는 명령어는 <br> 태그를 사용해야한다.
(<br> 태그 사용)
코드를 수정하고
웹페이지에서 실행하면
(실행결과)
두 줄로 나온다.
웹 페이지에서 변수를 전달하는 방법이 두 가지가 있다. (GET과 POST 방식)
1. GET
2. POST
GET 방식은 URL을 통해 변수를 전달한다.
확인을 위해 PHP 파일에서 GET 변수를 받아오겠다.
GET변수는 $_GET[변수이름] 으로 받아온다.
(php 코드)
URL에서 name변수에 kim을 입력해 전달해보니 kim이 출력되었다.
(실행 결과)
사실
GET이든 POST이든 배열의 형태로 담겨 넘어온다.
GET은 GET[] 배열에, POST는 POST[] 배열에
그리고 인덱스는 변수 이름이 된다.
그래서 GET[name] 에서 name이 인덱스 역할로 값 kim이 나온 것이다.
_GET 배열을 확인하려면
print_r( $_GET ) 으로 확인 하면 된다.
(배열 확인 코드)
(실행 결과)
실행 결과를 보면 변수에 담겨 넘어 오는 값들이
배열의 형태로 전달 되는 것을 확인 할 수 있다.
두 번째 전달 방식인 POST 형태를 확인해 보겠다.
POST는 URL 헤더가 아닌 패킷의 Body에 변수를 담아서 넘겨준다.
그렇기 때문에 url에 표시 되지 않는다.
POST로 전달하는 방법은 HTML의 Form 태그를 이용해서 보낼 수 있는 방법 하나이다.
간단한 Form 태그를 작성했다.
(간단한 Form 태그)
(실행 결과)
여기서 전달 방식을 지정해 줄 수 있는데 먼저
아까 했던 GET방식을 확인해 보겠다.
(method = "GET")
그리고 받아오는 php 파일에서 위에 두줄은 GET으로 아래 두줄은 POST변수에서 받아오도록
작성했다.
(받아오는 페이지)
값을 입력해서 submit 하면
아래와 같이 나온다.
(실행 결과)
위에서 GET으로 보냈으므로 url을 확인해보면
어떤 변수에 어떤 값이 들어가서 전달 되는지 확인 할 수 있다.
또, 아래 두개 POST변수에는 아무 값도 뜨지 않은 것을 확인 할 수 있다.
이번에는 POST로 전달해 보겠다.
(method = "POST")
(실행 결과)
실행 결과를 보면
아래 두 줄만 값이 전달되어 나온 것을 확인 할 수 있다.
'Hacking > Web Hacking' 카테고리의 다른 글
WebHacking - CSRF Attack (0) | 2017.02.16 |
---|---|
WebHacking - XSS Attack (1) | 2017.02.15 |
Web Hacking - 실습환경 게시판구축(제로보드) (0) | 2017.02.15 |
Web Hacking - 실습환경 웹서버 구축(제로보드)(2) (0) | 2017.02.10 |
Web Hacking - 실습환경 웹서버 구축(제로보드)(1) (2) | 2017.02.10 |