인 스 턴 스 설명 PHP 폼

6737 단어 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 과 URL
1.이름 검증
다음 코드 가 보 여 주 는 간단 한 방법 은 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 폼 에 관 한 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기