인 스 턴 스 설명 PHP 폼
GET vs. POST
1 GET 와 POST 는 모두 배열(예 를 들 어 array(key=>value,key 2=>value 2,key 3=>value 3,...)을 만 듭 니 다.이 배열 은 키/값 쌍 을 포함 합 니 다.키 는 폼 컨트롤 의 이름 이 고 값 은 사용자 의 입력 데이터 입 니 다.
2 GET 와 POST 는$로 간주 된다.GET 와$POST。초 전역 변수 입 니 다.이 는 역할 영역 을 고려 하지 않 아 도 됩 니 다.특수 코드 가 필요 하지 않 습 니 다.함수,클래스 또는 파일 에서 접근 할 수 있 습 니 다.
3 전달 방식
$_GET 는 URL 매개 변 수 를 통 해 현재 스 크 립 트 에 전 달 된 변수 배열 입 니 다.
$_POST 는 현재 스 크 립 트 에 HTTP POST 를 통 해 전달 되 는 변수 배열 입 니 다.
(1)GET 는 언제 사용 합 니까?
GET 방법 을 통 해 폼 에서 보 내 는 정 보 는 누구나 볼 수 있 습 니 다(모든 변수 이름과 값 은 URL 에 표 시 됩 니 다).GET 는 보 낸 메시지 의 수량 에 도 제한 이 있다.약 2000 글자 로 제한 합 니 다.
GET 는 민감 하지 않 은 데 이 터 를 보 내 는 데 사용 할 수 있 습 니 다.
설명:비밀번호 나 다른 민감 한 정 보 를 GET 로 보 낼 수 없습니다!
(2)POST 는 언제 사용 합 니까?
POST 방법 을 통 해 폼 에서 보 내 는 정 보 는 다른 사람 에 게 보이 지 않 습 니 다(모든 이름/값 은 HTTP 요청 주체 에 삽 입 됩 니 다).또한 보 내 는 정보의 수량 에 제한 이 없습니다.
또한 POST 는 서버 에 파일 을 업로드 할 때 multi-part 바 이 너 리 입력 을 하 는 등 고급 기능 을 지원 합 니 다.
알림:개발 자 는 폼 데 이 터 를 보 내 는 POST 를 선 호 합 니 다.
폼 검증
html specialchars()함수
다른 페이지 로 넘 어가 지 않 고 폼 을 페이지 자체 에 제출 하려 면.이렇게 하면 사용 자 는 폼 페이지 에서 오류 알림 정 보 를 얻 을 수 있다.
폼 의 HTML 코드 는 다음 과 같 습 니 다:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
(1)무엇이$SERVER["PHP_SELF"]변수?$_SERVER["PHP_SELF"]는 현재 실행 중인 스 크 립 트 의 파일 이름 을 되 돌려 주 는 초 전역 변수 입 니 다.
그래서$SERVER["PHP_SELF"]폼 데 이 터 를 다른 페이지 로 이동 하 는 대신 페이지 자체 로 보 냅 니 다.이렇게 하면 사용 자 는 폼 페이지 에서 오류 알림 정 보 를 얻 을 수 있다.
(2)html specialchars()함수 가 무엇 입 니까?
html specialchars()함수 가 특수 문 자 를 HTML 실체 로 변환 합 니 다.이것 은<와>와 같은 HTML 문자 가< 로 바 뀌 는 것 을 의미 합 니 다.와<,페이지 효 과 는 여전히<>입 니 다.이렇게 하면 공격 자가 폼 에 HTML 이나 자바 스 크 립 트 코드(크로스 사이트 스 크 립 트 공격)를 주입 하여 코드 를 이용 하 는 것 을 방지 할 수 있다.
html specialchars()함수 가 없 으 면
해커 입력 URL:
http://www.example.com/test_form.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E
폼 은 다음 과 같이 전 환 됩 니 다.
<form method="post" action="test_form.php"/><script>alert('hacked')</script>
전형 반사 xss폼 검사 함수:
<?php
//
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
$website = test_input($_POST["website"]);
$comment = test_input($_POST["comment"]);
$gender = test_input($_POST["gender"]);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
필수 필드 인증 E-mail 과 URL1.이름 검증
다음 코드 가 보 여 주 는 간단 한 방법 은 name 필드 에 알파벳 과 빈 칸 이 포함 되 어 있 는 지 확인 합 니 다.name 필드 가 잘못 되면 오류 메 시 지 를 저장 합 니 다:
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = " !";
}
2.이메일 확인다음 코드 가 보 여 주 는 간단 한 방법 은 이메일 주소 문법 이 효과 가 있 는 지 확인 합 니 다.잘못 되면 오류 메 시 지 를 저장 합 니 다:
$email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
$emailErr = " email !";
}
3.URL 검증아래 코드 가 보 여 주 는 방법 은 URL 주소 문법 이 올 바른 지 확인 합 니 다.(이 정규 표현 식 은 URL 의 슬 래 쉬 를 동시에 허용 합 니 다.)URL 주소 문법 이 잘못 되면 오류 메 시 지 를 저장 합 니 다.
$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%
=~_|]/i",$website)) {
$websiteErr = " URL";
}
폼 인 스 턴 스 완료
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<?php
//
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = " ";
} else {
$name = test_input($_POST["name"]);
//
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = " ";
}
}
if (empty($_POST["email"])) {
$emailErr = " ";
} else {
$email = test_input($_POST["email"]);
//
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
$emailErr = " email ";
}
}
if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
// URL ( URL )
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
$websiteErr = " URL";
}
}
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) {
$genderErr = " ";
} else {
$gender = test_input($_POST["gender"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<h2>PHP </h2>
<p><span class="error">* </span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
:<input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
:<input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
:<input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
:<textarea name="comment" rows="5" cols="40">
이상 은 PHP 폼 에 관 한 지식 을 정리 한 상세 한 내용 입 니 다.더 많은 PHP 폼 에 관 한 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.