php의 URL 파라미터와 $_GET 변수

포스트 썸네일 이미지

오늘도 생활코딩 수업 영상과 함께 php에 대해 알아보겠다.

이번에는 URL 파라미터에 대해 알아보자.




이전 포스트




생활코딩의 php 수업 영상: URL 파라미터






URL 파라미터란?


URL 파라미터URL Parameters는 웹 주소(URL)를 통해 서버에 추가적인 정보를 전달하는 데 사용되는 데이터다.

key=value 쌍의 형태로, 서버가 특정 콘텐츠를 동적으로 처리하거나 필터링할 수 있도록 돕는다.



1. 정의


URL 파라미터는 URL의 주 경로(Path) 뒤에 붙어 서버 측 스크립트에 전달되는 입력 데이터다.

이는 주로 웹사이트에서 특정 콘텐츠를 요청할 때 필요한 상세 정보(예: 검색어, 페이지 번호, 글 or 상품 ID)를 전달하는 역할을 한다.



2. 구조


URL 파라미터는 URL에서 물음표(?) 뒤에 오는 부분이며, 이 전체를 쿼리 스트링Query String이라고 부른다.


https://shopping.com/search.php?category=books&page=2


  • 시작: 주 경로와 파라미터를 구분하는 물음표 (?)
  • 파라미터 분리: 여러 파라미터 쌍을 구분하는 앰퍼샌드 (&)
  • 키-값 분리: 각 파라미터의 이름(키)과 값(밸류)을 분리하는 등호 (=)





$_GET 변수


$_GET은 php에서 사용되는 슈퍼 글로벌 배열 중 하나로, HTTP GET 요청을 통해 URL에 전달된 쿼리 스트링(URL 파라미터) 데이터를 저장하는 데 사용된다.

데이터가 URL에 직접 노출되기 때문에 보안에 민감한 정보(비밀번호 등)를 전달하는 데는 적합하지 않다.

주로 페이지 번호, 검색어, 필터 조건 등 데이터를 조회하거나 상태를 변경하지 않는 작업에 사용된다.



1. 작동 방식


https://shopping.com/index.php?product_id=10&color=green

사용자가 브라우저에서 이런 URL로 접속했다고 가정해 보자.

이때, php 스크립트(index.php) 내부에서 $_GET 배열은 다음과 같이 구성된다.



배열 키 (Key) 배열 값 (Value)
'product_id' '10'
'color' 'green'



2. php 코드에서의 접근


<?php
// URL: ...?product_id=10&color=green

// $productId 변수에 '10'이 저장됨
$productId = $_GET['product_id'];

// $color 변수에 'green'이 저장됨
$color = $_GET['color'];

echo '선택된 상품 ID: ' . $productId;
// 출력: 선택된 상품 ID: 10
?>

php 코드에서는 대괄호 안에 파라미터 이름을 넣어 해당 값에 접근한다.



3. 보안 및 안전성 (필수 고려 사항)


$_GET을 통해 들어오는 모든 데이터는 사용자가 임의로 조작할 수 있는 외부 입력이다.

따라서 이 데이터를 데이터베이스 쿼리나 HTML 출력에 사용할 때는 반드시 보안 처리를 해야 한다.


HTML 출력 시에는 나중에 다룰 htmlspecialchars() 함수를 사용해 XSS(Cross-Site Scripting) 공격을 방지하고,

데이터베이스 사용 시에는 Prepared Statements 같은 기능을 사용해 SQL Injection 공격을 방지해야 한다.




다음 포스트

이 글이 도움이 됐거나 유익했다면 스크롤을 조금만 더 내려서 댓글을 남겨주세요. (비로그인도 가능합니다!)
응원이나 피드백이 담긴 댓글은 제가 계속 블로그를 해나갈 수 있는 원동력이 됩니다. 😊

지인에게 보여주고 싶은 글이었다면 URL을 복사해서 메신저나 소셜 미디어에 공유해 주세요.

댓글 쓰기

0 Comments

문의하기 양식