我有以下代码来捕获URL变量并将它们推送到RDS数据库。当我使用此URL打开下面的页面时
完美无缺。但是当使用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);
?>
答案 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