1

我真的不知道 Drupal,但设法创建了一个简单的 HTML 页面,我想使用输入的名字和姓氏来运行 snoopy.class.php 以在网站上运行脚本以检索一些数据。该按钮应该运行一个将提交 URL 但我没有得到任何结果的函数。

因为我不知道如何在 Drupal 中调试,所以我添加了一些echo语句来查看代码运行了多远,当它尝试创建一个新的 snoopy 对象时它似乎停止了。我下载了该课程并将其放在我认为可以访问的文件夹中,即 public_html/tools 它:

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

下面是我正在使用的代码

<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;
}
?>

任何帮助,将不胜感激。

4

1 回答 1

1

如果您需要在 Drupal 站点上进行自定义开发,请创建自定义模块并使用Drupal 的表单 API

如果您需要从 PHP 执行 HTTP 请求,请使用 PHP 库/扩展,例如php-curlGuzzle或 Drupal 的drupal_http_request()。是的,它们都支持 HTTPS。

于 2013-09-04T15:42:55.893 回答