Php 将表单输入馈送到自定义sql表

Php 将表单输入馈送到自定义sql表,php,mysql,wordpress,gravityforms,Php,Mysql,Wordpress,Gravityforms,Backgound:我有一个wordpress安装,它有一个由cpanel管理的基本myslq数据库结构。我已经实现了重力表单插件来生成一种联系我们表单。如果客户对产品有疑问/投诉,他们填写表格并提交。这将进入我在wp数据库中创建的自定义表(wp联系人)。我使用ODBC连接器将表中的数据连接到Filemaker。然后,我们的客户服务团队可以看到我们开发的定制filemaker应用程序中的数据,他们可以回答这个问题 问题:我的PHP脚本有问题,该脚本应该将客户输入的数据的重力发送到我创建的自定义s

Backgound:我有一个wordpress安装,它有一个由cpanel管理的基本myslq数据库结构。我已经实现了重力表单插件来生成一种联系我们表单。如果客户对产品有疑问/投诉,他们填写表格并提交。这将进入我在wp数据库中创建的自定义表(wp联系人)。我使用ODBC连接器将表中的数据连接到Filemaker。然后,我们的客户服务团队可以看到我们开发的定制filemaker应用程序中的数据,他们可以回答这个问题

问题:我的PHP脚本有问题,该脚本应该将客户输入的数据的重力发送到我创建的自定义sql表。当我测试from并输入样本数据并单击submit时,我得到一个此页面无法显示的错误。此外,我创建的自定义表中没有数据。还有验证码的问题。我已经在重力表单中实现了验证码,所以我假设如果验证码被检查,我需要某种字段设置为1或0?实现这一点的最佳方式是什么?这是我的剧本:

add_action("gform_after_submission_1", "input_fields", 10, 2);
function input_fields($entry, $form)
{
    global $rhodesba_rhodes;

        $entry["12"] = '$fname';
        $entry["14"] = '$lname';
        $entry["4"] = '$email';
        $entry["5"] = '$address1';
        $entry["15"] = '$address2';
        $entry["16"] = '$city';
        $entry["18"] = '$state';
        $entry["17"] = '$zip';
        $entry["7"] = '$bbd';
        $entry["6"] = '$upc';
        $entry["10"] = '$subject';
        $entry["2"] = '$question';

    $SQL = "INSERT INTO wp_contacts (id, name, last_name, state, city, address, address_2, bbd, subscribe, upc, email, subject, comments, phone, user_ip, answer, answered_by, zipcode, category_id, active, contact_captcha, answered_date, dept, computer_name, created) VALUES ('', '$fname', '$lname', '$state', '$city', '$address1', '$address2', '$bbd', '', '$upc', '$email', '$subject', '$question', '', '', '', '', '$zip', '', '', '', '', '', '', '')";
    $rhodesba_rhodes->query($SQL);
}
我的表格中有一些字段不是通过重力表单“联系我们”表单填充的。相反,我们的客户服务器团队在回答filemaker应用程序中的问题时(即-answer、Answeed_by等)会操纵这些字段,filemaker会将这些字段用于其他目的。对于这些字段,我使用了占位符“”。对于每个添加的记录,“我的ID”字段设置为自动递增。

所以,经过一些研究,我发现了这一点。我张贴的解决方案,以防任何其他人有同样的问题。这是我的更新代码:

add_action("gform_after_submission_1", "input_fields", 10, 2);
function input_fields($entry, $form)
    {
        $password = "password";
        $username = "username";
        $servername = "localhost";
        $dbname = "db";
        $fname = $entry["12.3"];
        $lname = $entry["14.6"];
        $email = $entry["4"];
        $address1 = $entry["5.1"];
        $address2 = $entry["15.2"];
        $city = $entry["16.3"];
        $state = $entry["18.4"];
        $zip = $entry["17.5"];
        $bbd = $entry["7"];
        $upc = $entry["6"];
        $subject = $entry["10"];
        $question = $entry["2"];

$con=mysqli_connect($servername, $username, $password, $dbname);
mysqli_query($con,"INSERT INTO wp_contacts (id, name, last_name, state, city, address, address_2, bbd, subscribe, upc, email, subject, comments, phone, user_ip, answer, answered_by, zipcode, category_id, active, contact_captcha, answered_date, dept, computer_name, created) VALUES ('', '$fname', '$lname', '$state', '$city', '$address1', '$address2', '$bbd', '', '$upc', '$email', '$subject', '$question', '', '', '', '', '$zip', '', '', '', '', '', '', '')");
    }
我的第一个问题是以相反的方式分配变量声明

$entry["12"] = $fname //WRONG
$fname = $entry["12"] //RIGHT
一旦我处理好了这个问题,我就开始在mysql表中填充数据,但是,只填充了某些字段。经过进一步调查,我发现我的id被用来访问$entry是不正确的。为了获得正确的id,我右键单击浏览器中的每个字段并检查元素。这向我显示了如下名称属性:name=“input_1.3”。“input_”前缀后面的数字是用于$entry的id。我更改了错误的id,现在数据发布得很完美

我还使用它连接到数据库:

mysqli_connect
如果有人有类似的问题,希望这能有所帮助