简体   繁体   中英

Using Snoopy PHP class in Drupal

I really don't know Drupal but have managed to create a simple HTML page that I would like to use the first and last name inputted to run snoopy.class.php to run a script on a web site to retrieve some data. The button should run a function that will submit the URL but I am not getting any results.

Because I don't know how to debug in Drupal I added some echo statements to see how far the code ran it seems to be stopping when it tries to create a new snoopy object. I downloaded the class and put it in what I would think would be an accessible folder, namely public_html/tools it:

-rw-r--r-- 1 agentpitstop apache 37815 Sep  3 21:03 Snoopy.class.php 

Below is the code I am using

<form method="post">
<p>Last Name: <input type="text" name="lastname" /><br />
   First Name: <input type="text" name="firstname" /></p>
 <p><input type="submit" value="Send it!"></p>
</form>

<?php

if($_POST)
{

  echo "1st display  <br />\n";


  $url = "https://pdb-services-beta.nipr.com/pdb-xml-reports/hitlist_xml.cgi?";
  $url = $url . "customer_number=beta83agent&pin_number=nipr123&report_type=1";

  $lastname = $_POST['lastname'];




    $firstname = $_POST['firstname'];
      $parms = array("name_last"=>$lastname,"name_first"=>$firstname);

      echo "2nd display  <br />\n";


      $result = curl_download($url,$parms);
      $xml=simplexml_load_file("$result.xml");
      $nipr_id = $xml->NPN;

      echo "url " . $url . "<br />\n";
      echo "Agent  " . $_POST['firstname'] . " " . $_POST['lastname'] . " Id is:".  $nipr_id  . "<br />\n";
      echo "3rd Result from call " . $result . "<br />\n";
   }
?>






   <?php
            include "Snoopy.class.php";
    function curl_download($url,$parms)
    {

echo "in call to curldownload ";
$snoopy = new Snoopy();
echo "after setting object";

$snoopy->curl_path = "/usr/bin/curl";  # Or whatever your path to curl is - 'which curl' in terminal will give it to you.  Needed because snoopy uses standalone curl to deal with https sites, not php_curl builtin.
echo "after setting path";
$snoopy->httpsmethod = "POST";
echo "after setting post";
$snoopy->submit($url, $parms);
echo "after setting submit";
print $snoopy->results;
echo "results: " . results;
return $snoopy->results;
}
?>

Any help would be appreciated.

If you need custom development on a Drupal site create a custom module and use Drupal's form API .

If you need to perform HTTP request from PHP, use a PHP library/extension, such a php-curl , Guzzle or Drupal's drupal_http_request() . And yes, they all support HTTPS.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM