Maison  >  Article  >  développement back-end  >  Comment intégrer Google Sheets à un formulaire de site Web PHP : guide étape par étape

Comment intégrer Google Sheets à un formulaire de site Web PHP : guide étape par étape

王林
王林original
2024-09-05 22:33:41831parcourir

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

  • Le stockage des données de formulaire directement dans Google Sheets permet d'améliorer la gestion des données et la collaboration. Cette intégration permet aux différents membres de l'équipe de visualiser et d'analyser les données en temps réel, sans avoir à traiter des requêtes de base de données sophistiquées.

1. Créer une feuille Google

  • Accédez à Google Sheets.
  • Créez une nouvelle feuille et nommez-la en conséquence, par exemple « Envois de formulaires ».
  • Dans la première ligne, créez des en-têtes pour les données que vous souhaitez stocker. Par exemple, si vous collectez le nom, l'e-mail et le message, créez des colonnes intitulées Nom, Email et Message.

2. Créer une application Web Google Apps Script

  • Allez dans Extensions > Script d'applications.

3. Écrivez le script Google Apps pour accepter les données du formulaire

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

Explication :

  • fonction doPost(e)

    • Il s'agit d'une fonction spéciale de Google Apps Script qui est déclenchée chaque fois que votre application Web reçoit une requête HTTP POST. Le paramètre e contient les informations envoyées par le formulaire.
  • let ss = SpreadsheetApp.openById("123123asdasd");

    • Cette ligne ouvre la feuille de calcul Google par son identifiant unique. Remplacez l'ID "123123asdasd" par votre propre identifiant Google Sheet, que vous pouvez trouver dans l'URL de la feuille.
  • var sheet = ss.getSheetByName("Sheet1");

    • Cela récupère la feuille spécifique dans la feuille de calcul où vous souhaitez ajouter les données du formulaire. Si votre feuille porte un nom différent, remplacez « Feuille1 » par le nom réel de votre feuille.
  • données var ;
    • Cette variable stockera les données du formulaire entrant après leur analyse.
  • essayez { data = JSON.parse(e.postData.contents); } catch (err) { data = e.parameter; >

    • Ici, le code tente d'analyser les données entrantes au format JSON, en supposant que le formulaire envoie les données au format JSON. Si l'analyse échoue (ce qui signifie que le formulaire a utilisé un format codé en URL à la place), il revient à e.parameter, qui contient les données du formulaire codées en URL.
    • JSON.parse(e.postData.contents) : tente d'analyser le corps de la requête au format JSON.
    • e.parameter : contient les données du formulaire si elles ont été envoyées au format codé en URL (comme c'est généralement le cas pour les formulaires HTML).
  • sheet.appendRow([data.fname, data.email, data.message]);

    • Cela ajoute les données du formulaire à la prochaine ligne disponible dans Google Sheet. Les données sont extraites de l'objet de données, qui contient dans le formulaire des champs de saisie
  • retourner ContentService.createTextOutput("Success").setMimeType(ContentService.MimeType.TEXT);

    • Après avoir ajouté avec succès les données à la feuille, cette ligne renvoie un message de réussite (« Succès ») au client (le site Web ou l'application qui a soumis le formulaire).
      • ContentService.createTextOutput("Success") : crée une réponse en texte brut contenant le mot "Success".
      • setMimeType(ContentService.MimeType.TEXT) : définit le type MIME de la réponse en texte brut.

4. Déployer le script en tant qu'application Web

  1. Cliquez sur Déployer > Testez les déploiements dans le coin supérieur droit de l'éditeur de script.
  2. Sélectionnez Gérer les déploiements, puis cliquez sur Nouveau déploiement.
  3. Dans la liste déroulante « Sélectionner le type », choisissez Application Web.
  4. Sous Exécuter en tant que, choisissez Moi.
  5. Sous Qui a accès, choisissez Tout le monde.
  6. Cliquez sur Déployer, copiez l'URL de l'application Web générée et copiez-la.

5. Code PHP pour soumettre les données du formulaire à l'application Web Google Apps Script

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

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn