1.GET
2-1.html 폼작성
name이 txt인 값을 get방식으로 보내는 폼을 만들어준다.
입력된 데이터를 제출할 때, 데이터가 전송될 목적지 URL을 action 으로 php 파일로 지정해준다.
Get방식은 이값들이 쿼리파라미터값으로 보내진다.
<form method="get" action="php2-2.php">
<input type="text" name="txt" value="get방식">
<input type="submit">
</form>
2-2.$_GET
PHP에서 GET 방식으로 전송된 데이터를 저장하는 전역 배열입니다.
주로 HTML 폼 또는 URL에서 쿼리 스트링을 통해 서버로 데이터를 전송할 때 사용됩니다.
주로 간단한 데이터 전송이나 링크를 통해 데이터를 전달할 때 많이 사용됩니다.
2-3.PHP 파일
$_GET으로 GET 방식으로 전달된 'txt' 값을 변수 $text에 저장한뒤 echo로 출력한다.
<?php
$text=$_GET["txt"];
echo $text;
2.POST
2-1. html 폼작성
name이 txt인 값을 post 방식으로 보내는 폼을 만들어준다.
입력된 데이터를 제출할 때, 데이터가 전송될 목적지 URL을 action 으로 php 파일로 지정해준다.
<form method="post" action="php2.php">
<input type="text" name="txt" value="1">
<input type="submit">
</form>
2-2.$_POST
PHP에서 POST 방식으로 전송된 폼 데이터를 저장하는 전역 배열
연관 배열로, 폼의 name 속성을 키(key)로 사용해 전송된 값을 참조할 수 있습니다.
요청의 본문(body)에 데이터를 전송하므로 보안 측면에서 더 안전합니다
2-3.PHP 파일
$_POST로 Post 된 요소중 txt의 값을 $id 변수에 넣고 echo로 출력해준다.
<?php
$id=$_POST["txt"];
echo $id;
3.$_SERVER
$_SERVER는 PHP에서 제공하는 슈퍼 글로벌 배열 중 하나로, 현재 요청 또는 서버 환경에 대한 다양한 정보를 담고 있는 서버 및 실행 환경 변수들을 저장합니다.
- $_SERVER["PHP_SELF"]:
- 현재 실행되고 있는 스크립트의 경로를 반환합니다.
- 예: /folder/file.php
- $_SERVER["REQUEST_METHOD"]:
- 클라이언트가 요청할 때 사용한 HTTP 메서드를 반환합니다.
- POST, GET, PUT, DELETE 등이 가능하지만, 주로 GET과 POST 방식이 사용됩니다.
- $_SERVER["HTTP_USER_AGENT"]:
- 사용자가 요청을 보낸 브라우저나 클라이언트의 정보를 반환합니다.
- 예: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/85.0
- $_SERVER["SERVER_NAME"]:
- 현재 서버의 호스트 이름을 반환합니다.
- 예: example.com
- $_SERVER["HTTP_HOST"]:
- 사용자가 접속한 호스트를 반환합니다. 브라우저의 주소창에 입력한 도메인이 이 값에 해당됩니다.
- 예: www.example.com
- $_SERVER["SERVER_ADDR"]:
- 서버의 IP 주소를 반환합니다.
- $_SERVER["REMOTE_ADDR"]:
- 사용자의 IP 주소를 반환합니다. 클라이언트가 어디서 접속했는지를 파악할 수 있습니다.
- 예: 192.168.1.1
- $_SERVER["QUERY_STRING"]:
- URL에 포함된 쿼리 스트링을 반환합니다. GET 방식으로 전송된 데이터를 확인할 때 유용합니다.
- 예: id=10&category=books
- $_SERVER["SCRIPT_NAME"]:
- 실행되고 있는 스크립트의 경로를 반환합니다. 현재 스크립트에 대한 경로 정보를 제공하기 때문에 URL 경로를 구할 때 자주 사용됩니다.
- $_SERVER["DOCUMENT_ROOT"]:
- 웹 서버의 루트 디렉토리 경로를 반환합니다. 서버의 파일 시스템 내에서 웹 애플리케이션의 기준 위치를 구할 때 유용합니다.
- 예: /var/www/html
- $_SERVER["HTTP_REFERER"]:
- 사용자가 이전에 있었던 페이지의 URL을 반환합니다. 어떤 페이지에서 현재 페이지로 넘어왔는지를 알 수 있습니다.
- 예: http://example.com/previous-page
- $_SERVER["SERVER_PROTOCOL"]:
- 요청을 처리하는 데 사용된 프로토콜의 이름과 버전을 반환합니다.
- 예: HTTP/1.1
- $_SERVER["REQUEST_URI"]:
- 요청된 페이지의 URI를 반환합니다. 현재 페이지의 경로나 쿼리 문자열을 포함한 전체 URI를 확인할 수 있습니다.
- 예: /index.php?id=10
4.<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>
현재 페이지의 파일 이름을 반환하고, 이를 안전하게 출력하는 코드입니다.
폼의 action 속성에 사용되어, 폼 제출 시 현재 페이지로 데이터를 보내는 self-submission 방식에서 활용됩니다.
이를 통해 폼을 제출한 후 다시 같은 페이지에서 데이터를 처리할 수 있습니다.
htmlspecialchars()은 보안을 위해 사용되며 악성스크립트를 방지합니다.
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<input type="text" name="txt" value="식">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$text = htmlspecialchars($_POST["txt"]);
echo $text;
}
?>
5.POST,GET 확인 $_SERVER["REQUEST_METHOD"]
$_SERVER["REQUEST_METHOD"]를 사용하여 GET 일떄랑 POST일때랑 조건문을 나눠서 처리할수있다.
<!-- HTML 폼 -->
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<label for="name">이름 (POST):</label>
<input type="text" name="name" id="name">
<input type="submit" value="POST 요청">
</form>
<br>
<form method="get" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<label for="name">이름 (GET):</label>
<input type="text" name="name" id="name">
<input type="submit" value="GET 요청">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// POST 요청이 있을 때 실행되는 코드
$name = htmlspecialchars($_POST['name']);
echo "POST로 받은 이름: " . $name;
} elseif ($_SERVER["REQUEST_METHOD"] == "GET") {
// GET 요청이 있을 때 실행되는 코드
$name = htmlspecialchars($_GET['name']);
echo "GET으로 받은 이름: " . $name;
}
?>
'BackEnd > PHP' 카테고리의 다른 글
[PHP] 파일 (0) | 2024.09.29 |
---|---|
[PHP] PHP 기본 문법 (0) | 2024.09.24 |
[PHP] vscode 에서 PHP 사용하기 (1) | 2024.09.24 |