shop-wiz logo
Follow Us on Facebook Follow Us on Google+ Follow Us on Twitter Follow Us on LinkedIn
form과 관련된 데이타처리


우리가 server side script language 인 php를 공부하는 가장 큰 이유는 상호 인터페이스를 유지 하기 위해서 일것입니다.
자바 스크립트 만으로도 고난도 프로그램이 가능하지만 자바스크립트는 사용자가 컴퓨터와 얘기를 나누는 것에 지나지 않습니다. 인터넷이라는 환경하에서 다양한 의견이나 자료를 나만이 공유하는 것이 아니라 타인들과 공유해야 합니다. 만약 쇼핑몰을 운영한다면 방문고객의 행동패턴이나 연령들, 취미, 기타 등등을 알아내어 좀더 다양한 마케팅의 자료로 사용하기를 원할 겁니다.
이런 욕구가 단순한 html을 뛰어넘어 우리가 php라는 것은 배우는 목적일 것입니다.

프로그램이라고 하는 것은 데이타의 입력, 데이타 정렬, 데이타 출력등으로 나누어 볼수 있는데 데이타 입력부분에서 가장 기초가 되는 것이 html의 form 문입니다.

이장에서는 다양한 form 문과 이들을 입력을 받아 데이타를 출력하는 부분을 간단한 예시를 통해 설명드리겠습니다.
명칭 코딩 디스플레이
싱글라인 <input type="text">
멀티라인 <textarea></textarea>
패스워드 <input type="password">
책크박스 <input type="checkbox">
라디오버튼 <input type="radio">
리스트/메뉴 <select name="select"> </select>
파일필드 <input type="file">
서브미트 버튼 <input type="submit">
일반버튼 <input type="button">
리셋버튼 <input type="reset">
이미지필드 <input type="image">
히든 <input type="hidden">

각각의 폼에는 type, name, value 라는 인자가 들어갑니다.
type : 폼형태
name :폼이름
value : 폼의 값

또한 폼문은 <form name="form1" method="get" action="" enctype="multipart/form-data"> </form> 은 이와 같이 구성되며 이속에 상기에 설명드린 각각의 폼들이 들어 갑니다.
name : 폼이름
method : 전송방법(get, post 방식)
action : 전송 목적지 - 어디로 값을 보낼 것인가?
enctype : 2가지 방식이 있는데 파일 첨부시 반드시 enctype="multipart/form-data" 을 사용해야 합니다.

나열은 해 두었는데 이것으로 무엇을 하느냐가 문제져? 다음과 같은 sample을 통해서 이해를 하시기 바랍니다.
또한 여기서는 간단한 예만을 보여드리며 각각의 의미에 대해서는 따로 설명드리지는 않겠습니다. 이것에 대한 자세한 설명은 html 문서들을 참조하시기 바랍니다.

lecture5_result1.php
<form name="form1" method="post" action="lecture5_result2.php">
	<input name="hidden" type="hidden" value="1">
	이름:  <input name="single" type="text" id="single">
	하고싶은 말:  <textarea name="multi" id="multi"></textarea>
	비밀번호 :  <input name="password" type="password">
	php가 좋다!! 맞으면 책크해 주세요  <input name="checkbox" type="checkbox" value="1">
	잘하는 과목은?  <input name="radio" type="radio" value="영어" checked>
	영어 
	<input name="radio" type="radio" value="수학">수학
	방문경로 :  <select name="select"> 
	<option selected>선택</option> 
	<option value="네이버">네이버</option>
	<option value="야후">야후</option>
	<option value="엠파스">엠파스</option>
	<option value="다음">다음</option>
	<option value="기타">기타</option>
	</select>"
	<input name="submit" type="submit">
	<input name="reset" type="reset">
</form>

상기처럼 입력단을 만들었으면 이곳에서 전송된 데이타를 처리하여 브라우저에 출력할수 있는 프로그램을 만들어야 합니다.
action="lecture5_result2.php" 이므로 lecture5_result2.php 라는 파일을 만들어 입력받은 데이타를 처리하는 프로그램을 작성하겠습니다.

lecture5_result2.php
<?
	$hidden = $_POST[hidden];
	$single = $_POST[single];
	$single = $_POST[multi];
	$single = $_POST[password];
	$single = $_POST[checkbox];
	$single = $_POST[radio];
	$single = $_POST[select]
?>
히든으로 넘어온 값 : <? echo $hidden; ?>
이름: <? echo $single; ?>
하고싶은 말: <? echo $multi; ?>
비밀번호 : <? echo $password; ?>
php가 좋다!! 맞으면 책크해 주세요 <? echo $checkbox; ?>
잘하는 과목은? <? echo $radio;?> 
방문경로 : <? echo $select;?>

결과보기




[설명]
기존 프로그래머들도 이상한 부분이 $hidden = $_POST[hidden]; 일것입니다. 예전에는 이렇게 변수를 받지 않아도 사용되었지만 현재 global_register off에서는 다시한번 더 값을 받아서 처리해야 합니다. 아래는 각각의 전송방법에 따른 값을 받는 방법입니다.
$_POST : post 방식으로 값이 넘어 올경우
$_GET : get 방식으로 값이 넘어 올 경우
$_SERVER : 서버변수
$_FILES : 파일이 넘어올경우
$_ENV : 환경변수
$_COOKIE : 쿠티값이 넘어 올경우
$_SESSION : 세션값이 넘어올경우

phpinfo()함수를 통해서 현재 자신의 php설정을 보는 것은 매우 중요합니다. 다음에 시간을 내어 이 부분에 대해서 한번 짚고 넘어 가겠지만 지금은 phpinfo()함수를 사용하는 방법만 보여드리겠습니다.

<?
	phpinfo();
?>

결과보기

Powered by shop-wiz since 2002, e-mail:wangta69@naver.com