簡體   English   中英

PHP:將表單數據發送到php腳本,然后將數據發布到另一個表單處理器(例如zapier.com)嗎?

[英]PHP: Send form data to php script which then posts data to another form processor like zapier.com?

我使用的是zapier.com的第三方表單處理程序。 問題是,在將數據提交給第三方表單處理器之后,我需要一種重定向用戶的方法。 Zapier.com接受發布,獲取和放置提交。

我在想:

  1. 客戶提交表格
  2. 我的PHP表單處理器捕獲數據
  3. 我的php表單處理器然后通過POST或GET將數據提交給第三方表單處理器
  4. 然后,我的PHP表單處理器將用戶重定向到“謝謝”頁面。

我可能會對此有所考慮,但是我看到的唯一方法是制作一個表單,該表單發布已發布到其上的數據。 否則,該表單只會將我的用戶發送到第三方處理器,而無需將他們重定向到我選擇的任何頁面。 第三方表單處理器無法使用自定義重定向。

使用javascript和Ajax可以做到這一點(使用jQuery):

$("#idOfTheForm").submit(function(e) {
    e.preventDefault();
    $.ajax({
        method : "post",
        url : this.action,
        data : $(this).serialize(),
        success : function() {
            window.location = "yourUrlOfThanks.html";
        },
        error : function() {
            alert("Something went bad");
        }
    });
});

基本上就是這樣:向此表單的操作網址發送一個發布請求,一旦它拋出200個代碼(找到並一切正常),然后重定向到我的頁面。 如果發生錯誤,則服務器將拋出40 *狀態代碼,並且腳本將進入錯誤功能。

您可以使用Guzzle 代理用戶請求。

    $client = new Guzzle\Http\Client();

    $request = $client->post('/3rd.party.php')
        ->addPostField('user_field_1', $_POST['user_field_1'])
        ->addPostField('user_field_2', $_POST['user_field_2']);

    $response = $request->send();

    if ($response->isSuccessful()) {
        //show message
    }

缺點是您不能100%確定表單提交確實成功。 為了實現此目的,您可以$request->getBody()並檢查是否存在已知的成功消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM