Heim  >  Artikel  >  Backend-Entwicklung  >  So integrieren Sie Google Sheets in ein PHP-Website-Formular: Schritt-für-Schritt-Anleitung

So integrieren Sie Google Sheets in ein PHP-Website-Formular: Schritt-für-Schritt-Anleitung

王林
王林Original
2024-09-05 22:33:41859Durchsuche

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

  • Das direkte Speichern von Formulardaten in Google Sheets trägt zur Verbesserung der Datenverwaltung und Zusammenarbeit bei. Diese Integration ermöglicht es verschiedenen Teammitgliedern, Daten in Echtzeit anzuzeigen und zu analysieren, ohne sich mit komplexen Datenbankabfragen befassen zu müssen.

1. Erstellen Sie ein Google Sheet

  • Gehen Sie zu Google Sheets.
  • Erstellen Sie ein neues Blatt und benennen Sie es entsprechend, z. B. „Formularübermittlungen“.
  • Erstellen Sie in der ersten Zeile Kopfzeilen für die Daten, die Sie speichern möchten. Wenn Sie beispielsweise Namen, E-Mail-Adressen und Nachrichten erfassen, erstellen Sie Spalten mit den Titeln „Name“, „E-Mail“ und „Nachricht“.

2. Erstellen Sie eine Google Apps Script-Webanwendung

  • Gehen Sie zu Erweiterungen > Apps-Skript.

3. Schreiben Sie das Google Apps-Skript zum Akzeptieren von Formulardaten

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);
}

Erklärung:

  • Funktion doPost(e)

    • Dies ist eine spezielle Funktion in Google Apps Script, die immer dann ausgelöst wird, wenn Ihre Web-App eine HTTP-POST-Anfrage empfängt. Der e-Parameter enthält die vom Formular gesendeten Informationen.
  • let ss = SpreadsheetApp.openById("123123asdasd");

    • Diese Zeile öffnet die Google-Tabelle mit ihrer eindeutigen ID. Ersetzen Sie die ID „123123asdasd“ durch die ID Ihres eigenen Google Sheets, die Sie in der URL des Blatts finden.
  • var sheet = ss.getSheetByName("Sheet1");

    • Dadurch wird das spezifische Blatt innerhalb der Tabelle abgerufen, an das Sie die Formulardaten anhängen möchten. Wenn Ihr Blatt einen anderen Namen hat, ersetzen Sie „Blatt1“ durch Ihren tatsächlichen Blattnamen.
  • Var-Daten;
    • Diese Variable speichert die eingehenden Formulardaten, nachdem sie analysiert wurden.
  • Versuchen Sie es mit { data = JSON.parse(e.postData.contents); } Catch (err) { data = e.parameter; }

    • Hier versucht der Code, die eingehenden Daten als JSON zu analysieren, vorausgesetzt, das Formular sendet Daten als JSON. Wenn das Parsen fehlschlägt (was bedeutet, dass das Formular stattdessen ein URL-codiertes Format verwendet), wird auf e.parameter zurückgegriffen, das die URL-codierten Formulardaten enthält.
    • JSON.parse(e.postData.contents): Versucht, den Hauptteil der Anfrage als JSON zu analysieren.
    • e.parameter: Enthält die Formulardaten, wenn sie im URL-codierten Format gesendet wurden (wie es für HTML-Formulare typisch ist).
  • sheet.appendRow([data.fname, data.email, data.message]);

    • Dadurch werden die Daten aus dem Formular an die nächste verfügbare Zeile im Google Sheet angehängt. Die Daten werden aus dem Datenobjekt extrahiert, das im Formular Eingabefelder
    • enthält
  • return ContentService.createTextOutput("Success").setMimeType(ContentService.MimeType.TEXT);

    • Nachdem die Daten erfolgreich an das Blatt angehängt wurden, gibt diese Zeile eine Erfolgsmeldung („Erfolg“) an den Client (die Website oder App, die das Formular übermittelt hat) zurück.
      • ContentService.createTextOutput("Success"): Erstellt eine Nur-Text-Antwort mit dem Wort "Success".
      • setMimeType(ContentService.MimeType.TEXT): Setzt den MIME-Typ der Antwort auf Klartext.

4. Stellen Sie das Skript als Web-App bereit

  1. Klicken Sie auf „Bereitstellen“ > Testbereitstellungen in der oberen rechten Ecke des Skripteditors.
  2. Wählen Sie Bereitstellungen verwalten und klicken Sie dann auf Neue Bereitstellung.
  3. Wählen Sie im Dropdown-Menü „Typ auswählen“ die Option Web-App aus.
  4. Wählen Sie unter „Ausführen als“ die Option „Ich“ aus.
  5. Wählen Sie unter „Wer hat Zugriff“ die Option „Jeder“.
  6. Klicken Sie auf „Bereitstellen“, kopieren Sie die generierte Web-App-URL und kopieren Sie diese.

5. PHP-Code zum Senden von Formulardaten an die Google Apps Script Web App

Html-Code:

<!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-Code:

<?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);
}
?>

Das obige ist der detaillierte Inhalt vonSo integrieren Sie Google Sheets in ein PHP-Website-Formular: Schritt-für-Schritt-Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn