WHMCS API — попытка опубликовать данные из html-формы

Я довольно хорошо понимаю PHP, однако до сегодняшнего дня мне никогда не приходилось иметь дело с curl, поэтому у меня возникла небольшая проблема с пониманием того, как я должен отправлять данные в API WHMCS.

Я сделал простую 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' => '[email protected]',
            'name' => 'Demo User',
            'priority' => 'Medium',
            'markdown' => true,
            'responsetype' => 'json',
        ) ) ); 
$response = curl_exec($ch); 
curl_close($ch);
?>`

person DMUK    schedule 01.10.2017    source источник


Ответы (1)


Вам нужно прочитать опубликованные переменные из массива $_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);

}
person wesamly    schedule 02.10.2017