2017-10-01 10 views
0

Je comprends assez bien PHP, mais je n'ai jamais eu à traiter avec curl avant aujourd'hui, donc j'ai un peu de difficulté à comprendre comment je suis censé soumettre des données à WHMCS APIAPI WHMCS - Essayer de publier des données à partir d'un formulaire HTML

J'ai fait un formulaire HTML simple sur mon site mais j'essaye de faire que le code suivant obtienne les variables telles que sujet et message j'ai essayé beaucoup de manières différentes et je continue à recevoir erreur 500 et je ne peux pas trouver un guide sur le forum WHMCS il semble y avoir quelques-uns qui pourraient travailler mais ces sujets ont été supprimés car il y a vieux je devine

Le code suivant est ce que WHMCS vous donne de travailler avec tout ce dont j'ai besoin est de l'aide pour comprendre comment je formater les variables provenant de ma forme

<?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); 
?>` 

Répondre

0

Vous devez lire les variables affichées à partir du tableau $ _POST, par exemple $ _POST ['example'] contiendra la valeur de l'exemple d'élément d'entrée du formulaire soumis.

Pour la forme (à titre d'exemple, nous allons faire l'objet et du courrier électronique entrées):

<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> 

Pour l'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); 

}