Skip to content
조회 수 8329 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

<?

<form method="get"> //<form method="post">

  맥주소 : <input type="text" name="test2" /><br><br>누군지 입력하세요.: 

  <input type="submit" value="입력" />

</form>  



$test1 = $_GET['test2'];
$test2 = $_POST['test2'];


echo "[get :]".$test1."<br />";

echo "[post :]".$test2."<br />";


?>


form method에서 get방식, post방식을 선택하여 input type의 name이라는 변수를 전달한다.

간단하지?


근데 갑자기 PHP5.4.4는 이런식이 아니면 출력이 안되네.







외부에서 오는 변수들 ¶

HTML 폼 (GET과 POST) ¶

폼이 PHP 스크립트로 전달될때, 그 폼안의 정보가 스크립트내에서 자동적으로 유효해진다. 이 정보에 접근할 수 있는 많은 방법이 제공된다. 예를 들면:

Example #1 단순한 HTML 폼

<form action="foo.php" method="post">
    이름:  <input type="text" name="username" /><br />
    메일: <input type="text" name="email" /><br />
    <input type="submit" name="submit" value="전송합니다!" />
</form>

특별한 설정과 개인적인 선호에 의해, HTML 폼으로부터 데이터를 접근할수 있는 많은 방법이 존재한다. 몇가지르 예를 들면:

Example #2 단순한 POST HTML 폼으로 부터 데이터에 접근하기

<?php 
// PHP 4.1.0부터 사용 가능

   echo $_POST['username'];
   echo $_REQUEST['username'];

   import_request_variables('p', 'p_');
   echo $p_username;

// PHP 6부터 사용 불가. PHP 5.0.0부터, 이러한 긴 예약 변수는
// register_long_arrays 지시어로 비활성화 할 수 있습니다.

   echo $HTTP_POST_VARS['username'];

// PHP 지시어 register_globals = on 일 경우에 사용할 수 있습니다.
// PHP 4.2.0부터 기본값은 register_globals = off 입니다.
// 이 방법을 사용하는 것은 권장되지 않습니다.

   echo $username;
?>

GET 폼을 사용하는 것은 적절한 GET 기선언 변수를 대신 사용할때를 제외하면 동일하다. GET은 QUERY_STRING (URL에서 '?'이후의 값)에도 적용이 된다. 따라서, 예를 들면 http://www.example.com/test.php?id=3는 $_GET['id']으로 접근할수 있는 GET 데이터를 포함한다. 또한 $_REQUEST와 import_request_variables()를 참고.

Note:

$_POST 와 $_GET 같은 슈퍼전역 배열은 PHP 4.1.0 이후버전부터 사용되기 시작했다.

전에 설명한대로, PHP 4.2.0 이전에는 register_globals의 기본값이 on이였다. PHP 커뮤니티는 그 디렉티브 값이 off가 되어있다고 가정하고 적절하게 코딩하는 것을 추천하기 때문에 이 디렉티브값에 연연할 필요가 없다.

Note:

magic_quotes_gpc 설정 디렉티브는 Get, Post, Cookie 값에 영향을 준다. 이 값이 켜져있으면, 그 값(It's "PHP!")은 자동적으로 (It\'s \"PHP!\")이 될것이다. 이 회피는 DB 입력을 위해 필요하다. 또한 addslashes()stripslashes()magic_quotes_sybase를 참고한다.

PHP는 폼 변수가 쓰이는 환경안의 배열도 이해한다. (관련 faq를 참고) 예를 들면, 관련 변수를 함께 그룹화하거나, 다중 select 입력으로부터 값을 끄집어내기위해 이 기능을 사용할수 있다. 예로써, 자신에게 폼을 post하고 그 데이터를 출력해보자:

Example #3 좀더 복잡해진 폼 변수들

<?php
if ($_POST) {
    echo 
'<pre>';
    echo 
htmlspecialchars(print_r($_POSTtrue));
    echo 
'</pre>';
}
?>
<form action="" method="post">
    이름: <input type="text" name="personal[name]" /><br />
    메일: <input type="text" name="personal[email]" /><br />
    맥주: <br />
    <select multiple name="beer[]">
        <option value="warthog">Warthog</option>
        <option value="guinness">Guinness</option>
        <option value="stuttgarter">Stuttgarter Schwabenbräu</option>
    </select><br />
    <input type="hidden" name="action" value="submitted" />
    <input type="submit" value="전송합니다!" />
</form>

변수명으로 IMAGE SUBMIT ¶

form을 전달할때, 표준적인 submit 버튼 태그 대신 다음과 같이 image 태그를 사용할수 있다.

<input type="image" src="image.gif" name="sub" />

유저가 image의 어느곳에서 클릭하더라도 수행 폼은 두가지 추가적인 변수를 서버로 전송할것이다. sub_x와 sub_y. 이 변수는 image안에서 유저가 클릭하는 좌표를 갖는다. 실제로 브라우저에 의해 보내지는 변수명은 밑줄(_)이 아니라 마침표(.)를 포함한다. 그러나 PHP는 자동으로 마침표를 밑줄로 변환한다.

HTTP 쿠키 ¶

PHP는 » Netscape's Spec에 의해 정의된 HTTP 쿠키를 투명하게 지원한다. 쿠키는 원격 브라우저안에 데이터를 저장하는 메카니즘이고 따라서 복귀하는 유저를 추적하거나 식별하게 해준다. setcookie() 함수를 사용하여 쿠키를 설정할수 있다. 쿠키는 HTTP 헤더의 일부분이고, 그래서 SetCookie함수는 브라우저에 출력이 생기기전에 호출되어야 한다. 이 제약은 header() 함수에도 같이 적용된다. 쿠키 데이터는 적절한 쿠키 데이터 배열에 존재하게 된다. $_COOKIE,$HTTP_COOKIE_VARS는 물론 $_REQUEST 배열에 존재한다. 더 자세한 정보와 예제를 보기 위해 setcookie() 매뉴얼 페이지를 참고.

단일 쿠키 변수에 여러값을 지정하려한다면, 배열로 그 값을 지정할수 있다. 예를 들면:

<?php
  setcookie
("MyCookie[foo]"'Testing 1'time()+3600);
  
setcookie("MyCookie[bar]"'Testing 2'time()+3600);
?>

위 예제코드는 MyCookie가 스크립트내에서 단일 배열이 될지라도 두개의 분리된 쿠키를 생성할수 있다. 여러값을 갖는 단일 쿠키를 설정하려면, 첫번째로 그 값에 serialize()나 explode()를 사용할것을 고려하도록 한다.

쿠키는 경로나 도메인이 다르지 않으면 브라우저안에서 같은 이름을 갖는 이전 쿠키를 교체한다는 것에 주의해야 한다. 따라서, 쇼핑 카트 애플리케이션을 위해서는 카운터를 유지하고 이 카운터를 전달하기를 원할것이다.

Example #4 setcookie()예제 코드

<?php
if (isset($_COOKIE['count'])) {
    
$count $_COOKIE['count'] + 1;
} else {
    
$count++;
}
setcookie('count'$counttime()+3600);
setcookie("Cart[$count]"$itemtime()+3600);
?>

유입되는 변수명에 존재하는 점(dot) ¶

표준적으로, PHP는 스크립트내로 변수를 전달할때 변수명을 변경하지 않는다. 하지만, 점(마침표, full stop)은 PHP 변수명안에서 유효한 문자가 될수 없다는것에 주의해야 할것이다. 이에 유의하여 다음 코드를 보자:

<?php
$varname
.ext;  /* invalid variable name */
?>
현재, 해석기가 보게되는 것은 $varname이라는 변수와 그 뒤에 문자열 결합 연산자, 그 뒤에 벌거벗은 문자열(barestring) 'ext'이다. (즉, 따옴표로 둘러싸지 않은 문자열은 key나 예약된 단어와 일치하지 않음) 확실하게 이 결과는 원치 않은것이다.

이러한 이유로, PHP는 유입되는 변수명안의 점(.)을 밑줄(_)로 변경한다는것을 명심해야 한다.


- Input.html -



<form method = "post" action = "Process.php">
  좋아하는 동물은? <input type = "text" name = "sAnimal">
  <input type = "submit" value = "확인">
</form>





- Process.php -

<?
$sAnimal = $_POST["sAnimal"];

echo "당신이 좋아하는 동물 : $sAnimal";
?>


php 에서는 이전 입력 페이지의 폼(form)에 입력된 값을 구하기 위해서는 $_POST["폼 텍스트 박스명"] 형태로 기술해주면 됩니다.

참고로 위와 같은 변수의 전달 방식을 POST 방식이라 하며 이와 대조되는 GET 방식이 있는데 이 방식은 웹 페이지의 URL 에 직접 변수명과 변수값을 명시해주어 전달해주는 방식입니다.

GET 방식으로 전달되는 변수값을 구하기 위해서는 $_GET["변수명"] 와 같이 기술해주면 됩니다.

그리고 POST 방식, GET 방식 모두 $_REQUEST["폼 양식명 또는 변수명"] 와 같이 기술해주어도 동일한 처리가 이루어집니다.

로그인 후 댓글쓰기가 가능합니다.

?

List of Articles
번호 분류 제목 날짜 조회 수
797 컴퓨터잡담 파이썬 초보자가 접하기 쉬운 오류 메시지 2 2021.06.15 1441
796 컴퓨터잡담 파이썬의 IF문 사용시 실행값에서 오류발생시 진행하는 예외처리 방법 2021.06.15 2860
795 컴퓨터잡담 파이썬 게시물 검색으로 새로운 게시물 등록시 지메일로 파일 보내기 2021.06.14 2043
794 컴퓨터잡담 파이썬 Beautifulsoup html의 특정 주소만 가져오기 file 2021.06.14 2986
793 컴퓨터잡담 농업경영에 이용하지 않는 농지의 처분 의무 2021.06.11 1223
792 컴퓨터잡담 파이썬 pyautogui 명령어 2021.06.06 1559
791 컴퓨터잡담 파이썬 한우정액 정보 스프레드로 추출하기 file 2021.06.05 1625
790 컴퓨터잡담 파이썬으로 네이버 증권정보 추출하기 2021.06.05 1874
789 컴퓨터잡담 자주쓰는 파이썬 명령어 2021.06.05 1249
788 컴퓨터잡담 파이썬 자주 발생되는 에러(오류) 대처방법 file 2021.06.05 2662
787 컴퓨터잡담 파이썬 웹페이지 기업정보 추출하기 2021.06.02 1823
786 컴퓨터잡담 타지역 농지매입 2021.06.01 1108
785 컴퓨터잡담 파이썬 사이트 정보 가져와서 필요한 내용 추출하기 2021.05.31 1779
784 컴퓨터잡담 파이썬 셀레니움으로 네이버 증권의 종목 검색하여 특정항목 클릭하기 2021.05.30 1564
783 컴퓨터잡담 파이썬 동행복권 판매인 모집 공고 발생시 자동알림 2021.03.16 2272
782 컴퓨터잡담 아두이노 나노 호환보드 칩셋드라이버 CH340 설치 및 file 2021.03.12 2366
781 컴퓨터잡담 [파이썬] 설치 및 사용방법 file 2021.03.12 1859
780 컴퓨터잡담 한글입력이 안될때(how to hangul ...) file 2021.01.08 2839
779 [Docs]스프레드시트 스프레드시트 함수 2020.12.27 4825
778 [Docs]스프레드시트 스프레드시트 스크립트 소스 2020.12.26 4892
Board Pagination Prev 1 ... 5 6 7 8 9 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소