>  기사  >  백엔드 개발  >  Google 시트를 PHP 웹사이트 양식과 통합하는 방법: 단계별 가이드

Google 시트를 PHP 웹사이트 양식과 통합하는 방법: 단계별 가이드

王林
王林원래의
2024-09-05 22:33:41831검색

How to Integrate Google Sheets with a PHP Website Form: Step-by-Step Guide

  • 양식 데이터를 Google Sheets에 직접 저장하면 데이터 관리 및 공동작업이 향상됩니다. 이러한 통합을 통해 다양한 팀원이 정교한 데이터베이스 쿼리를 처리할 필요 없이 실시간으로 데이터를 보고 분석할 수 있습니다.

1. Google 시트 만들기

  • Google 스프레드시트로 이동하세요.
  • 새 시트를 만들고 그에 따라 이름을 지정합니다(예: "양식 제출").
  • 첫 번째 행에서 저장하려는 데이터에 대한 헤더를 만듭니다. 예를 들어 이름, 이메일, 메시지를 수집하는 경우 이름, 이메일, 메시지라는 제목의 열을 만듭니다.

2. Google Apps Script 웹 앱 만들기

  • 확장 프로그램으로 이동 > 앱 스크립트.

3. 양식 데이터를 허용하도록 Google Apps 스크립트 작성

function doPost(e) {
  let ss = SpreadsheetApp.openById("123123asdasd"); // Change "SpreadsheetAppId" to your actual sheet id
  let sheet = ss.getSheetByName("Sheet1"); // Change "Sheet1" to your actual sheet name

  let data;
  try {
    data = JSON.parse(e.postData.contents);
  } catch (err) {
    data = e.parameter;
  }

  sheet.appendRow([data.fname, data.email, data.message]);

  return ContentService.createTextOutput("Success").setMimeType(ContentService.MimeType.TEXT);
}

설명:

  • doPost(e) 함수

    • 이는 웹 앱이 HTTP POST 요청을 받을 때마다 실행되는 Google Apps Script의 특수 기능입니다. e 매개변수에는 양식에서 보낸 정보가 포함됩니다.
  • let ss = SpreadsheetApp.openById("123123asdasd");

    • 이 줄은 고유 ID로 Google 스프레드시트를 엽니다. ID "123123asdasd"를 시트 URL에서 찾을 수 있는 자신의 Google 시트 ID로 바꾸세요.
  • var sheet = ss.getSheetByName("Sheet1");

    • 양식 데이터를 추가하려는 스프레드시트 내의 특정 시트를 검색합니다. 시트 이름이 다른 경우 "Sheet1"을 실제 시트 이름으로 바꾸세요.
  • var 데이터;
    • 이 변수는 구문 분석 후 들어오는 양식 데이터를 저장합니다.
  • try { data = JSON.parse(e.postData.contents); } catch (err) { data = e.parameter; }

    • 여기서 코드는 양식이 데이터를 JSON으로 보낸다는 가정 하에 수신 데이터를 JSON으로 구문 분석하려고 시도합니다. 구문 분석에 실패하면(양식이 대신 URL 인코딩 형식을 사용함을 의미) URL 인코딩 양식 데이터가 포함된 e.parameter로 대체됩니다.
    • JSON.parse(e.postData.contents): 요청 본문을 JSON으로 구문 분석하려고 시도합니다.
    • e.parameter: URL 인코딩 형식(일반적인 HTML 양식)으로 전송된 경우 양식 데이터를 보유합니다.
  • sheet.appendRow([data.fname, data.email, data.message]);

    • 이렇게 하면 양식의 데이터가 Google 시트에서 사용 가능한 다음 행에 추가됩니다. 데이터는 양식 입력 필드
    • 를 포함하는 데이터 개체에서 추출됩니다.
  • ContentService.createTextOutput("성공").setMimeType(ContentService.MimeType.TEXT)을 반환합니다.

    • 시트에 데이터를 성공적으로 추가한 후 이 줄은 클라이언트(양식을 제출한 웹사이트 또는 앱)에 성공 메시지("성공")를 반환합니다.
      • ContentService.createTextOutput("Success"): "Success"라는 단어가 포함된 일반 텍스트 응답을 생성합니다.
      • setMimeType(ContentService.MimeType.TEXT): 응답의 MIME 유형을 일반 텍스트로 설정합니다.

4. 스크립트를 웹 앱으로 배포

  1. 배포 >를 클릭하세요. 스크립트 편집기의 오른쪽 상단에서 배포를 테스트하세요.
  2. 배포 관리를 선택한 다음 새 배포를 클릭하세요.
  3. '유형 선택' 드롭다운에서 웹 앱을 선택하세요.
  4. 다음으로 실행에서 나를 선택하세요.
  5. 액세스 권한이 있는 사람 아래에서 누구든지 선택하세요.
  6. 배포를 클릭하고 생성된 웹 앱 URL을 복사하세요.

5. Google Apps Script 웹 앱에 양식 데이터를 제출하는 PHP 코드

HTML 코드:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Submit Form</title>
</head>
<body>
    <form method="post" action="submit.php">
        <label for="name">Name:</label>
        <input type="text" name="name" required><br>

        <label for="email">Email:</label>
        <input type="email" name="email" required><br>

        <label for="message">Message:</label>
        <textarea name="message" required></textarea><br>

        <input type="submit" value="Submit">
    </form>
</body>
</html>

PHP 코드:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $url = 'YOUR_WEB_APP_URL'; // Replace with your Google Apps Script Web App URL

    $postData = array(
        'name' => $_POST['name'],
        'email' => $_POST['email'],
        'message' => $_POST['message'],
    );

    $ch = curl_init($url);


    $postFields = http_build_query($postData);

    curl_setopt($ch, CURLOPT_POST, 1); // Send a POST request
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields); // Attach the POST fields
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Return the response as a string

    $response = curl_exec($ch);

    if ($response === false) {
        $error = curl_error($ch);
        echo "cURL error: $error";
    } else {
        echo "Server response: $response";
    }

    curl_close($ch);
}
?>

위 내용은 Google 시트를 PHP 웹사이트 양식과 통합하는 방법: 단계별 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.