$ _GET没有将数据推送到mysqli_query插入

时间:2018-01-21 05:28:48

标签: php mysql database rds formstack

我有以下代码来捕获URL变量并将它们推送到RDS数据库。当我使用此URL打开下面的页面时

https://example.com.au/post.php?UniqueID=1234&usename=test&useemail=test%40test.com&usephone=1800+000+000&refid=28383

完美无缺。但是当使用formstack webhooks推送数据时,只有日期字段可以工作。

主要区别在于它们的执行方式是webhook无法在浏览器上打开页面。

是否存在我遗漏的内容或是AWS RDS限制。

 <?php
    $userid = $_GET['UniqueID'];
    $username = $_GET['usename'];
    $useremail = $_GET['useemail'];
    $userphone = $_GET['usephone'];
    $userref = $_GET['refid'];

    $link = mysqli_connect('xxxx.xxxx.ap-southeast-2.rds.amazonaws.com', 'xxxxx', 'xxxxxx','xxxxxxx');

    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }

    // Check if server is alive
    if (mysqli_ping($link))
      {
      echo "Connection is ok!";
      }
    else
      {
      echo "Error: ". mysqli_error($link);
      }




    mysqli_query($link,"INSERT INTO landing_post (`useid`, `name`, `email`, `phone`, `refid`, `DateTime` ) VALUES ('$userid', '$username', '$useremail', '$userphone', '$userref', CURDATE())") 
    or die(mysqli_error($link));


      echo "Entered data successfully\n";


    mysqli_close($link);
    ?>

1 个答案:

答案 0 :(得分:1)

我们的webhook使用POST而不是GET请求(来自我们的文档:https://developers.formstack.com/docs/webhook-setup):

  

我们通过HTTP POST请求发送表单提交数据   URL编码表单数据或作为JSON字符串取决于   您在webhook配置选项中选择的格式。

你可以简单地将前几行代码更改为$ _REQUEST,如果你喜欢它支持get和post,或者你可以将它改为$ _POST,如果你只是它只处理POST仅

$userid    = $_REQUEST['UniqueID'];
$username  = $_REQUEST['usename'];
$useremail = $_REQUEST['useemail'];
$userphone = $_REQUEST['usephone'];
$userref   = $_REQUEST['refid'];

...

我可能还提出一个好主意,在它周围包含一些你不会尝试发送到mysql的逻辑,除非你想要的数据存在:

if (!empty($_REQUEST['refid'])) {

您甚至可以在该条件的其他地方发送消息,以发送错误信息或将其记录到您最喜欢的地方!

谢谢,

Chris P. @ Formstack