PHP에서 매개변수를 추가하여 자기 자신으로 리다이렉트하기
index.php 페이지에서
arg라는 이름의 GET 매개변수가
전달된다고 가정합시다.
그 내용을 화면에 출력해 봅시다:
<?php
echo $_GET['arg'];
?>
GET 매개변수 없이는 우리 페이지가
제대로 작동하지 않을 수 있다고 가정해 봅시다.
우리의 경우에는 매개변수가 전달되지 않으면
$_GET['arg']에 접근할 때 오류가 발생하기 때문에
사실입니다.
왜 사람이 아예 매개변수 없이 우리 페이지에 접속할 수 있는지 궁금할 수 있습니다. 사이트 어디에나 이 매개변수를 가진 링크를 달아 놓을 수 있지 않을까요? 하지만 그것은 보장이 아닙니다: 사이트 사용자가 예를 들어 어딘가에서 링크를 복사하다가 매개변수를 잃어버릴 수 있습니다. 아니면 그냥 주소창을 편집하다가 실수로 삭제할 수도 있습니다.
어쨌든, 우리 코드는 그러한 상황을 가정하고 무엇인가를 해야 합니다. 무엇을 할 수 있을까요?
GET 매개변수의 존재 여부를 확인하고, 존재할 때만 출력할 수 있습니다:
<?php
if (isset($_GET['arg'])) {
echo $_GET['arg'];
} else {
// 예를 들어 메시지로 대응합니다
}
?>
더 교묘하게 처리할 수도 있습니다:
<?php
if (!isset($_GET['arg'])) {
$_GET['arg'] = 'default'; // 기본값
}
echo $_GET['arg']; // 오류 없이 무언가를 보장해서 출력합니다
?>
매개변수 없이 페이지에 접속했을 때 매개변수를 가진 동일한 페이지로 리다이렉트되도록 할 수도 있습니다:
<?php
if (!isset($_GET['arg'])) {
header('Location: ?arg=default');
}
echo $_GET['arg']; // 매개변수가 보장됩니다
?>
두 번째 방법과 세 번째 방법의 차이점을 설명해 보세요.
page.php 페이지에서
num라는 이름의 GET 매개변수를 사용하여
숫자를 전달할 수 있다고 가정합니다.
이 매개변수 없이 접속했을 때,
자동으로 동일한 페이지로 리다이렉트되지만
num 매개변수 값이 1이 되도록 만드세요.