PHP의 $_GET 및 $_POST 변수는 사용자 입력과 같은 양식에서 정보를 검색하는 데 사용됩니다.
주목해야 할 한 가지 중요한 점은 HTML 양식을 처리할 때 PHP가 자동으로 HTML 페이지의 양식 요소를 PHP 스크립트에서 사용할 수 있도록 만들 수 있다는 것입니다.
아래 예에는 두 개의 입력 필드와 제출 버튼이 있는 HTML 양식이 포함되어 있습니다.
<html><head><metacharset="utf-8"><title>소스 코드 네트워크(downcodes.com)</title></head><body> <formaction="welcome.php" method="post" > 이름: <inputtype="text"name="fname">나이: <inputtype="text"name="age"><inputtype="submit"value="submit"></form> </body>< /html>
사용자가 위 양식을 작성하고 제출 버튼을 클릭하면 양식 데이터가 "welcome.php"라는 PHP 파일로 전송됩니다.
환영합니다<?phpecho$_POST["fname"];!<br>귀하의 나이는 <?phpecho$_POST["age"];>입니다.
다음 장에서는 PHP의 $_GET 및 $_POST 변수에 대해 설명하겠습니다.
다음 예에서는 드롭다운 메뉴에 대한 세 가지 옵션을 설정합니다. 양식은 데이터를 얻기 위해 GET 메서드를 사용합니다. 작업 속성 값이 비어 있으면 현재 스크립트에 제출된다는 의미입니다. 선택의 이름 속성을 통한 드롭다운 메뉴:
<?php$q= isset($_GET['q'])? htmlspecialchars($_GET['q']): '';if($q){ if($q=='CODERCTO'){ 에코' 소스 코드 네트워크<br>http://www.downcodes.com'; }elseif($q=='GOOGLE'){ echo'Google 검색<br>http://www.google.com'; }elseif($q=='TAOBAO'){ echo'Taobao<br>http://www.taobao.com' }}else{?><formaction=""method="get"> <selectname=" q"> <optionvalue="">사이트 선택:</option> <optionvalue="CODERCTO">codercto</option> <optionvalue="GOOGLE">Google</option> <optionvalue="TAOBAO">타오바오</option> </select> <inputtype="submit"value="submit"> </form><?php}?>
드롭다운 메뉴가 다중 선택(multiple="multiple")인 경우 select name="q[]"를 배열로 설정하여 얻을 수 있습니다. 다음은 POST를 사용하여 제출됩니다.
<?php$q= isset($_POST['q'])? $_POST['q']: '';if(is_array($q)){ $sites= array( 'CODERCTO'=> '소스 코드 네트워크 : http://www.downcodes.com', 'GOOGLE'=> '구글 검색: http://www.google.com', 'TAOBAO'=> '타오바오: http://www.taobao.com', ); foreach($qas$val){ //PHP_EOL은 줄바꿈에 사용되는 상수입니다. echo$sites[$val] }else{?><formaction; =" "method="post"> <selectmultiple="multiple"name="q[]"> <optionvalue="">사이트 선택:</option> <optionvalue="CODERCTO">codercto</option> <optionvalue="GOOGLE">Google</option> <optionvalue="TAOBAO">Taobao</option> </select> <inputtype="submit"value="Submit"> </form><?php}?>
PHP 라디오 버튼 형태의 name 속성 값은 일관되지만, 값 값이 다릅니다. 코드는 다음과 같습니다.
<?php$q= isset($_GET['q'])? htmlspecialchars($_GET['q']): '';if($q){ if($q=='CODERCTO'){ 에코' 소스 코드 네트워크<br>http://www.downcodes.com'; }elseif($q=='GOOGLE'){ echo'Google 검색<br>http://www.google.com'; }elseif($q=='TAOBAO'){ echo'Taobao<br>http://www.taobao.com' }}else{?><formaction=""method="get"> <inputtype=" radio"name="q"value="CODERCTO"/>codercto <inputtype="radio"name="q"value="GOOGLE"/>Google <inputtype="radio"name="q"value="TAOBAO"/>타오바오 <inputtype="submit"value="submit"></form><?php}?>
PHP 체크박스 체크박스는 여러 값을 선택할 수 있습니다:
<?php$q= isset($_POST['q'])? $_POST['q']: '';if(is_array($q)){ $sites= array( 'CODERCTO'=> '소스 코드 네트워크 : http://www.downcodes.com', 'GOOGLE'=> '구글 검색: http://www.google.com', 'TAOBAO'=> '타오바오: http://www.taobao.com', ); foreach($qas$val){ //PHP_EOL은 줄바꿈에 사용되는 상수입니다. echo$sites[$val] }else{?><formaction; =" "method="post"> <inputtype="checkbox"name="q[]"value="CODERCTO">codercto<br> <inputtype="checkbox"name="q[]"value="GOOGLE">Google<br> <inputtype="checkbox"name="q[]"value="TAOBAO">타오바오<br> <inputtype=" submit"value="submit"></form><?php}?>
가능할 때마다 (클라이언트 측 스크립트를 통해) 사용자 입력을 검증해야 합니다. 브라우저 유효성 검사가 더 빨라지고 서버에 대한 부담이 줄어듭니다.
사용자 입력을 데이터베이스에 삽입해야 하는 경우 서버 유효성 검사 사용을 고려해야 합니다. 서버에서 양식의 유효성을 검사하는 좋은 방법은 다른 페이지로 이동하는 대신 양식 데이터를 현재 페이지(비동기 제출이 더 좋음)로 전달하는 것입니다. 이렇게 하면 사용자가 동일한 양식 페이지에서 오류 메시지를 받을 수 있습니다. 사용자가 오류를 찾는 것이 더 쉬울 것입니다.