WHMCS API - 尝试从 html 表单中获取 post 数据

WHMCS API - Trying to post data from a html form

我理解 PHP 非常好,但是我在今天之前从未处理过 curl,所以我在理解应该如何向 WHMCS 提交数据时遇到一些问题 API

我在我的网站上制作了一个简单的 HTML 表单,但我试图让以下代码获取主题和消息等变量 我尝试了很多不同的方法,但我一直收到错误 500 和我在 WHMCS 论坛上找不到指南,似乎有一些可能有用,但这些主题已被删除,因为我猜它们已经过时了

以下代码是 WHMCS 为您提供的,我需要的只是帮助您理解如何格式化来自我的表单的变量

<?php 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, '####'); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(
            'action' => 'OpenTicket',
            'username' => '#',
            'password' => '#',
            'accesskey' => '#',
            'deptid' => '1',
            'subject' => 'This is a sample ticket',            
            'message' => 'Demo Text',
            'email' => 'demo@demo.com',
            'name' => 'Demo User',
            'priority' => 'Medium',
            'markdown' => true,
            'responsetype' => 'json',
        ) ) ); 
$response = curl_exec($ch); 
curl_close($ch);
?>`

您需要从 $_POST 数组中读取发布的变量,例如$_POST['example'] 将包含提交表单的示例输入元素的值。

对于表单(例如,我们将获取主题和电子邮件作为输入):

<form action="" method="post">
Subject: <input type="text" name="subject" value="" /><br />
Email: <input type="email" name="email" value="" /><br />
<input type="submit" name="btnAct" value="Submit" />
</form>

对于API:

<?php
if (isset($_POST['btnAct'])) {
    //ToDo: sanitize inputs, use filter_var() for example
    $subject = $_POST['subject'];
    $email = $_POST['email'];
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, '####'); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(
                'action' => 'OpenTicket',
                'username' => '#',
                'password' => '#',
                'accesskey' => '#',
                'deptid' => '1',
                'subject' => $subject,            
                'message' => 'Demo Text',
                'email' => $email,
                'name' => 'Demo User',
                'priority' => 'Medium',
                'markdown' => true,
                'responsetype' => 'json',
            ) ) ); 
    $response = curl_exec($ch); 
    curl_close($ch);

}