PHP는 서버 사이드 스크립트 언어로, 주로 웹 서버를 통해 클라이언트(브라우저)와 데이터를 주고받습니다.
PHP의 출력은 주로 HTML로 이루어집니다. 클라이언트 브라우저에 데이터를 출력하려면 echo 또는 print를 사용합니다.
<?php
echo "Hello, World!";
print "PHP 출력 예제";
?>
echo: 여러 인수를 출력할 수 있으며 빠릅니다.
print: 한 인수만 허용하지만 표현식으로 사용할 수 있습니다.
PHP는 사용자로부터 데이터를 입력받을 수 있습니다. 일반적인 입력 방식은 다음과 같습니다:
폼(Form) 입력
URL 쿼리 스트링 (GET 방식)
POST 데이터
파일 업로드
JSON 데이터 (AJAX 등)
PHP는 이러한 데이터를 슈퍼글로벌(Superglobals)을 통해 접근합니다:
$_GET: URL의 쿼리 파라미터를 통해 전달된 데이터
$_POST: 폼의 POST 방식으로 전달된 데이터
$_REQUEST: GET, POST, COOKIE 데이터를 모두 포함
$_FILES: 업로드된 파일 정보
$_SERVER: 서버 및 실행 환경 정보
예시:
<?php
$name = $_GET['name']; // http://example.com?name=Alice
echo "이름: " . $name;
?>
HTML 폼은 사용자로부터 데이터를 입력받아 서버로 전송하기 위한 도구입니다. 폼의 전송 방식에는 GET과 POST가 있습니다.
<form method="post" action="process.php">
<label>이름: <input type="text" name="name"></label>
<input type="submit" value="전송">
</form>
위 폼은 사용자가 입력한 name 값을 POST 방식으로 process.php로 전송합니다.
process.php 파일:
<?php
$name = $_POST['name'];
echo "입력한 이름: " . htmlspecialchars($name);
?>
htmlspecialchars(): XSS 공격 방지를 위해 HTML 특수문자를 이스케이프합니다.
PHP는 HTTP 프로토콜 위에서 작동합니다. HTTP는 클라이언트(웹 브라우저)와 서버 간에 데이터를 주고받는 프로토콜입니다.
GET: 데이터를 URL에 쿼리 스트링으로 첨부하여 전송
POST: 데이터를 HTTP 본문(body)에 담아 전송
PUT, DELETE: REST API 등에서 사용, PHP에서는 php://input 등으로 접근 가능
PHP는 HTTP 헤더를 조작할 수 있습니다.
// 리디렉션
header("Location: thankyou.php");
exit;
// 콘텐츠 타입 설정
header("Content-Type: application/json");
http_response_code(404); // 404 Not Found
또는
header("HTTP/1.1 404 Not Found");
form.html
<form method="post" action="submit.php">
<input type="text" name="email" placeholder="이메일 입력">
<input type="submit" value="가입">
</form>
submit.php
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$email = trim($_POST['email'] ?? '');
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "올바른 이메일 주소가 아닙니다.";
} else {
echo "입력된 이메일: " . htmlspecialchars($email);
}
}
?>
항목 |
설명 |
---|---|
echo, print |
PHP의 출력 함수 |
$_GET, $_POST |
클라이언트로부터의 입력 처리 |
<form> |
입력 폼 구성 |
header() |
HTTP 응답 헤더 설정 |
http_response_code() |
상태 코드 지정 |