오늘도 생활코딩 수업 영상과 함께 php에 대해 알아보겠다.
이번에는 URL 파라미터에 대해 알아보자.
이전 포스트
php 변수: 변수명의 표기법
생활코딩의 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 공격을 방지해야 한다.
다음 포스트
php의 내장 함수 (strlen, nl2br, file_get_contents)
응원이나 피드백이 담긴 댓글은 제가 계속 블로그를 해나갈 수 있는 원동력이 됩니다. 😊
지인에게 보여주고 싶은 글이었다면 URL을 복사해서 메신저나 소셜 미디어에 공유해 주세요.
0 Comments
댓글 쓰기
🔸 댓글은 블로그 운영자의 승인 후에 블로그에 표시됩니다.
🔸 비로그인 방문자 분께서는 '익명'보다 이름/URL로 댓글을 남겨주시면 감사하겠습니다. (URL은 생략 가능합니다.)
🔸 구글 로그인 방문자는 '알림 사용'에 체크를 하시면, 남겨주신 댓글에 대한 답글 알림을 메일로 받아볼 수 있습니다. 📩