목차
1. 네트워크 구성 실습
1-1 다른 네트워크 대역 PC 생성
1-2 router 리눅스 설정
2. HTML / PHP 폼
2-1 폼 태그 구조
2-2 데이터 전달 방식과 변수
2-3 다양한 input type 폼 태그
1. 네트워크 구성 실습
1-1 다른 네트워크 대역 PC 생성
현재 실습에서 구성된 네트워크 망은 다음과 같다.
Ethernet : 192.168.10.0/24
NAT : 192.168.11.0/24, 192.168.12.0/24
이전 실습에서 11번대 네트워크와 12번대 네트워크 사이에 위치한 라우터를 생성하였다.
추가적인 실습을 위해 NAT 네트워크 11번대와 12번대에 각각 하나씩 추가로 컴퓨터를 생성한다.


1-2 router 리눅스 설정
11번대 네트워크는 호스트 PC와 붙어있어 외부로 핑을 보낼 수 있으나 12번대 네트워크는 새로 생성한 라우터로 인해 연결되어있다.
컴퓨터는 기본적으로 자신을 통해서 패킷이 흐르는 것을 막아놓으므로 새로 생성한 라우터는 다음 그림과 같이 라우팅 기능을 수행하지 못하는 것을 확인할 수 있다.

라우터로써의 기능을 살리기 위해 이전 실습에서 생성한 라우터에 다음과 같은 설정을 한다.
- 방화벽을 disable 한다.
# systemctl disable firewalld.service
# systemctl stop firewalld.service
- Selinux를 disable 한다.
/etc/selinux/config 파일의 SELINUX=enforcing → SELINUX=disabled
수정 후 재부팅하여 설정을 적용시킨다.
- 패킷 포워딩 기능을 활성화한다. (커널 파라미터를 수정하는 작업이다.)
# sysctl ‐a | grep forward
# sysctl ‐w net.ipv4.ip_forward=1 (공백없음)
or
# echo 1 > /proc/sys/net/ipv4/ip_forward
or
재부팅을 해도 설정이 유지되기를 원할 경우
/etc/sysctl.conf 파일에 net.ipv4.ip_forward = 1 을 수정(추가)한다.
파일 추가 후 sysctl ‐p 명령을 실행하여 설정을 커널에 저장한다.

2. HTML / PHP 폼
2-1 폼 태그 구조
폼 태그 구조는 다음과 같다.
<form name="폼 이름" action="프로그램명" method="전달 방식"
[target="대상 윈도우"] [enctype="인코딩 형식"]>
입력 양식
......
</form>
name : 폼의 이름을 지정한다.
action : 입력될 값이 전달될 URL을 정의한다.
method : 입력 값의 전달 방식을 정의한다. (POST, GET)
target : 입력값을 전달할 URL을 출력할 창을 지정한다.
enctype : 입력된 데이터를 인코딩하는 방법을 정의한다.
2-2 데이터 전달 방식과 변수
품에 의해서 입력된 데이터는 PHP 프로그램으로 전달될 때 특별한 변수에 저장되어 전달된다. 특별한 변수는 폼에 정의한 method에 의해서 결정된다. method에는 주로 GET와 POST방식이 사용된다
● GET 방식
GET 방식은 입력 값을 action에 지정한 URL에 첨가하여 전달하는 방식이다. POST 방식에 비해 넣을 수 있는 데이터 양이 적다.
예제는 다음과 같다.
// GET 예제 HTML
<html><head><title>GET 예제</title></head><body>
<form name="get_ex" action="4-1.php" method="get">
<p><input type="text" name="text"><input type="submit" name="확인" value="확인"></p>
</form>
</body></html>
// GET 예제 PHP
<?
$text = $_GET['text'];
echo("전달된 값은 {$text}입니다.");
?>
GET 방식의 경우 폼의 형태가 아니더라도 링크의 형태로 전달이 가능하다.
다음과 같이 a.php에서 변수의 값을 b.php의 변수의 값으로 유지시키도록 전달해줄 수 있다.
// GET 예제 a.php
<?
$a = 1;
echo("₩$a = {$a}<br>
<a href=./b.php?a=$a>b.php</a>"); // <a href=./b.php?a=1>b.php</a>
?>
// GET 예제 b.php
<?
$a = $_GET["a"];
echo("₩$a = {$a}");
?>
이러한 방식이 네이버와 같은 곳에 로그인 한 상태에서 네이버의 다른 서비스로 들어가도 로그인 된 상태가 유지되도록 하는 원리이다. 그러나 실제로 GET 방식을 이용하면 보안상의 위협이 있으므로 실제로는 다른 방식을 사용한다.
2-3 다양한 input type 폼 태그
● text와 password
text 타입은 글자가 입력한 그대로 화면에 출력되며, password 타입은 글자가 가려진 모습(별표나 점 같은 모습)으로 화면에 출력된다.
텍스트와 패스워드 폼 태그 구조는 다음과 같다.
<input type="text" || "password" name="전달 변수명" maxlength="입력크기"
size="창크기" value="미리 입력된 값">
name : action에 정의된 URL로 전달될 변수명이다.
maxlength : 입력 한계를 지정하며 기본 값은 제한이 없다.
size : 입력 창의 길이를 지정하며 기본 값은 20이다.
value : 초기 입력 창에 미리 입력될 기본 값을 지정한다.
예제는 다음과 같다.
// input type text와 password 예제 HTML
<html>
<head>
<title>Input type text와 password</title>
</head>
<body>
<form name="tx_pw" action="4-4.php" method="post">
이름 : <input type="text" name="id" size="8"><br>
암호 : <input type="password" name="pw" size="8"><br>
<input type="submit" name="확인" value="확인">
</form>
</body>
</html>
// input type text와 password 예제 PHP
<?
echo(" 이름은 {$_POST['id']}입니다.<br>
암호는 {$_POST['pw']}입니다.");
?>
● input type radio
radio 타입은 체크박스를 제공한다. 단, 체크박스가 여러 개 있더라도 하나만 선택이 가능하다.
라디오 타입의 폼 태그 구조는 다음과 같다.
<input type="radio" name="전달 변수명" value="전달될 값" [checked]>
name : action에 정의된 URL로 전달될 변수명이다.
value : 전달될 값을 지정한다.
checked : 기본 선택 항목으로, 원하는 항목에 checked를 입력하면 기본적으로 해당 항목이 선택된 상태로 출력된다.
예제는 다음과 같다.
// input type radio 예제 HTML
<html><head><title>Input type radio</title></head><body>
<form name="radio" action="4-5.php" method="post">
1<input type="radio" name="rd" value="1" checked>, // 선택영역 내에서 name이
2<input type="radio" name="rd" value="2">, // 모두 동일해야 한다.
3<input type="radio" name="rd" value="3">,
4<input type="radio" name="rd" value="4">,
<input type="submit" name="확인" value="확인">
</form>
</body></html>
// input type radio 예제 PHP
<?
echo(" 선택한 값은 {$_POST['rd']}입니다.");
?>
● input type checkbox
checkbox 타입은 체크박스를 제공하지만 radio 타입과 달리 여러 개를 체크할 수 있다.
체크박스 타입의 폼 태그 구조는 다음과 같다.
<input type="checkbox" name="전달 변수명" value="전달될 값" [checked]>
name : action에 정의된 URL로 전달될 변수명이다.
value : 전달될 값을 지정한다.
checked : 기본 선택 항목으로, 원하는 항목에 checked를 입력하면 기본적으로 해당 항목이 선택된 상태로 출력된다.
예제는 다음과 같다.
// input type chechbox 예제 HTML
<html><head>
<title>Input type chechbox</title>
</head>
<body>
<form name="chechbox" action="4-6.php" method="post">
1<input type="checkbox" name="cb1" value="1" checked>, // name이 반드시 달라야 한다.
2<input type="checkbox" name="cb2" value="1">,
3<input type="checkbox" name="cb3" value="1">,
4<input type="checkbox" name="cb4" value="1">,
<input type="submit" name="확인" value="확인">
</form>
</body>
</html>
// input type chechbox 예제 PHP
<?
echo(" cb1은 {$_POST['cb1']}입니다.<br>
cb2은 {$_POST['cb2']}입니다.<br>
cb3은 {$_POST['cb3']}입니다.<br>
cb4은 {$_POST['cb4']}입니다.");
?>
● TEXTAREA
TEXTAREA 타입은 문자를 입력할 영역을 지정하는 것으로 여러 줄을 한 번에 입력받을 수 있다.
텍스트아리아 타입의 폼 태그 구조는 다음과 같다.
<textarea name="전달 변수명" rows="행수" cols="너비">초기값</textarea>
name : action에 정의된 URL로 전달될 변수명이다.
row : Text 박스의 높이를 지정한다. 그저 초기값일 뿐으로 입력글의 행이 길어지면 창은 계속 늘어난다.
cols : Text 박스의 너비를 지정한다.
초기값 : 초기에 박스내에 출력할 문자열이 있다면 지정한다.
예제는 다음과 같다.
// Textarea 예제 HTML
<html>
<head>
<title>Textarea</title>
</head>
<body>
<form name="textarea" action="4-9.php" method="post">
<textarea name="tarea" rows="5" cols="30"></textarea><br>
<input type="submit" name="확인" value="확인">
</form>
</body>
</html>
// Textarea 예제 PHP
<?
$tarea = $_POST["tarea"];
$tarea = nl2br($tarea);
echo("$tarea");
?>
nl2br : 브라우저에서는 개행 문자를 인식하지 못하므로 nl2br로 개행 코드를 인식시킨다.
● SELECT
SELECT 타입은 선택지를 목록 형태로 출력한다.
셀렉트 타입의 폼 태그 구조는 다음과 같다.
<select name="전달 변수명" size="행수" [mutiple]>
<option value="전달될 값">출력값</option>
......
</select)
name : action에 정의된 URL로 전달될 변수명이다.
size : 한번에 보여지는 구간을 지정한다.
multiple : 여러 개를 선택할 수 있다.
value : 변수에 전달될 값을 지정한다.
출력값 : 박스내에 출력할 문자열을 지정한다.
예제는 다음과 같다.
// select 태그 예제 HTML
<html>
<head>
<title>Select</title>
</head>
<body>
<form name="select" action="4-10.php" method="post">
<select name="select" size="1">
<option value="1">1번</option>
<option value="2">2번</option>
<option value="3">3번</option>
</select>
<input type="submit" name="확인" value="확인">
</form>
</body>
</html>
// select 태그 예제 PHP
<?
$select = $_POST["select"];
echo("선택된 값은 {$select}입니다.");
?>
'일일 정리' 카테고리의 다른 글
| DNS, 원격 데스크톱, SQL(ORACLE, TNS) (0) | 2025.02.18 |
|---|---|
| 네트워크 구성 실습, SSH 서버, 해시 함수, 전자 서명 (0) | 2025.02.17 |
| 키 관리 (키 분배) (0) | 2025.02.13 |
| 공개키 암호 (암호 시스템, 응용, 종류, 조건, 분석, RSA) (0) | 2025.02.12 |
| 재분배 (Redistribution), DES(F 함수, KEY, 작동 모드, 3중 DES) (0) | 2025.02.11 |