>  기사  >  백엔드 개발  >  PHP에서 양식 양식을 구현하는 방법

PHP에서 양식 양식을 구현하는 방법

王林
王林앞으로
2019-08-29 16:22:085209검색

1. 양식의 기본 사용

HTML에는 사용자 입력을 쉽게 수집할 수 있는 ff9c23ada1bcecdd1a0fb5d5a0f18437 태그가 있습니다.

작업: 양식 제출 주소(작성, 누구에게 줄지)

방법: 양식 제출 방법


예를 들어, 로그인 인터페이스에서 사용자가 입력한 사용자 이름과 비밀번호를 수집해야 합니다:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF‐8">
  <title>登录</title>
</head>
<body>
  <form action="login.php" method="post">
    <div>
      <label for="username">用户名</label>
      <input type="text" id="username" name="username">
    </div>
    <div>
      <label for="password">密码</label>
      <input type="password" id="password" name="password">
    </div>
    <button type="submit">登录</button>
  </form>
</body>
</html>

에 따르면 현재 상황에서 사용자는 한 번의 요청으로 이 양식 페이지를 받고, 양식 내용을 입력하고, 로그인을 클릭하면 양식이 자동으로 login.php로 전송되며, 남은 문제는 사용자가 제출한 콘텐츠를 얻는 방법을 고려하는 것입니다. login.php.

PHP에는 양식 제출 콘텐츠를 가져오는 데 특별히 사용되는 세 가지 슈퍼 전역 변수가 있습니다.

$_GET: GET 메서드로 제출된 콘텐츠를 가져오는 데 사용됩니다.

$_POST: POST 메서드로 제출된 콘텐츠를 가져오는 데 사용됩니다.
$_REQUEST : GET 또는 POST 방법을 얻는 데 사용됨 제출된 콘텐츠


$_POST 또는 $_REQUEST의 도움으로 다음 형식으로 제출된 콘텐츠를 얻을 수 있습니다:

<?php
// 获取表单提交的用户名和密码
echo &#39;用户名:&#39; . $_REQUEST[&#39;username&#39;];
echo &#39;密码:&#39; . $_REQUEST[&#39;password&#39;];

1.1, 제출 주소


action 제출 주소는 다음을 참조합니다. 요청을 보내려면 양식을 작성한 후 제출을 클릭하세요. 요청 주소는 무엇입니까?

유지 관리의 용이성 측면에서 일반적으로 가장 일반적으로 현재 파일에 제출한 다음 현재 파일에서 양식 제출 요청인지 여부를 확인합니다.

<?php
if ($_SERVER[&#39;REQUEST_METHOD&#39;] === &#39;POST&#39;) {
  // 表单提交请求
  }

또한

를 사용하여 동적으로 가져오는 것이 좋습니다. 파일 이름 변경 또는 웹사이트 디렉토리 구조 조정으로 인해 코드가 수정되었습니다.

<!‐‐ 这样写死 action 地址,当文件重命名就需要修改代码 ‐‐>
<form action="/foo/login.php">
  <!‐‐ ... ‐‐>
</form>
<!‐‐ 通过 `$_SERVER[&#39;PHP_SELF&#39;]` 获取路径,可以轻松避免这个问题 ‐‐>
<form action="<?php echo $_SERVER[&#39;PHP_SELF&#39;]; ?>">
  <!‐‐ ... ‐‐>
</form>
$_SERVER['PHP_SELF']

1.2 제출 방법


방법을 사용하여 양식 제출 방법을 설정할 수 있습니다. 현재 우리가 알고 있는 것은 가장 일반적인 두 가지 양식 제출 방법인 GET 및 POST입니다.

 효과의 관점에서 보면 둘 다 서버에 데이터를 제출할 수 있지만 제출 구현 원리는 매우 다릅니다.

GET
 양식 데이터는 URL의 ? 매개변수를 통해 서버로 전달됩니다.
 예 제출된 콘텐츠를 참조하세요. 주소 표시줄에
 URL 주소 길이가 제한되어 있으므로 데이터 길이가 제한됩니다(2000자)
POST
 양식 데이터는 요청 본문을 통해 서버로 전달되므로 인터페이스에서는 볼 수 없습니다
 모든 유형을 제출할 수 있습니다 파일을 포함한 데이터
인터페이스에 표시되지 않고 브라우저에 저장되지 않으므로 더 안전합니다
어떤 상황에서 어떤 방법을 사용해야 하는지는 비즈니스 시나리오와 각각의 상황에 따라 결정해야 합니다. 아니요 절대적인 대답은 몇 가지 원칙만 제공할 수 있습니다.
비밀번호나 기타 민감한 정보를 전송하는 데 GET을 사용하지 마세요! ! !
 이 요청이 주로 무언가를 얻기 위한 것인지 아니면 보내기 위한 것인지 명확하게 생각해야 합니다

2. 공통 양식 요소 처리

양식 요소의 텍스트 상자 및 텍스트 필드와 같은 요소는 요소의 이름을 직접적으로 지정합니다. 속성값이 키로 사용되며, 사용자가 입력한 정보가 값으로 사용되어 서버로 전송됩니다. 그러나 별도로 고려해야 할 몇 가지 특수 양식 요소가 있습니다.

2.1 라디오 버튼

<!‐‐ 最终只会提交选中的那一项的 value ‐‐>
<input type="radio" name="gender" value="male">
<input type="radio" name="gender" value="female">

2.2, 체크 버튼

<!‐‐ 没有设置 value 的 checkbox 选中提交的 value 是 on ‐‐>
<input type="checkbox" name="agree">
<!‐‐ 设置了 value 的 checkbox 选中提交的是 value 值 ‐‐>
<input type="checkbox" name="agree" value="true">

여러 개의 선택된 항목을 동시에 제출해야 하는 경우 can name 속성 뒤에는 []가 옵니다:

https://www.php.net/manual/zh/faq.html.php#faq.html.arrays

<input type="checkbox" name="funs[]" id="" value="football">
<input type="checkbox" name="funs[]" id="" value="basketball">
<input type="checkbox" name="funs[]" id="" value="world peace">

최종적으로 $를 통해 서버에 제출되었습니다. _POST 받은 것은 인덱스 배열입니다.

2.3.선택 상자

<select name="subject"> 
<!‐‐ 设置 value 提交 value ‐‐>  
<option value="1">语文</option>  
<!‐‐ 没有设置 value 提交 innerText ‐‐>  
<option>数学</option>
</select>

2.4 파일 업로드


유형 속성이 file인 입력 요소는 양식을 통해 파일을 제출(업로드)할 수 있습니다. 서버측 PHP는 $_FILES를 전달하여 업로드된 파일 정보를 가져옵니다.

<?php
// 如果选择了文件 $_FILES[&#39;file&#39;][&#39;error&#39;] => 0
// 详细的错误码说明:http://php.net/manual/zh/features.file‐upload.errors.php
if ($_FILES[&#39;file&#39;][&#39;error&#39;] === 0) {
  // PHP 在会自动接收客户端上传的文件到一个临时的目录
  $temp_file = $_FILES[&#39;file&#39;][&#39;tmp_name&#39;];
  // 我们只需要把文件保存到我们指定上传目录
  $target_file = &#39;../static/uploads/&#39; . $_FILES[&#39;file&#39;][&#39;name&#39;];
  if (move_uploaded_file($temp_file, $target_file)) {
    $image_file = &#39;/static/uploads/&#39; . $_FILES[&#39;file&#39;][&#39;name&#39;];
  }
}

$_FILES도 연관 배열이며 키는 양식의 이름이고 내용은 다음과 같습니다.

array(1) {
  ["avatar"]=>
  array(5) {
    ["name"]=>
    string(17) "demo.jpg"
    ["type"]=>
    string(10) "image/jpeg"
    ["tmp_name"]=>
    string(27) "C:\Windows\Temp\php786C.tmp"
    ["error"]=>
    int(0)
    ["size"]=>
    int(29501)
  }
}

더 많은 관련 질문이 있는 경우 PHP 중국어 웹사이트를 방문하세요.

PHP 비디오 튜토리얼

위 내용은 PHP에서 양식 양식을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
이전 기사:PHP 공통 명령줄다음 기사:PHP 공통 명령줄