致命错误:调用未定义的函数帖子

时间:2014-03-18 03:13:06

标签: php forms http post

我刚刚习惯了PHP并且有一个人们可以取消订阅邮件列表的网站,这个电子邮件地址需要发送到数据库。我将使用一般www发布http://。

以下是我收到的错误:

  

致命错误:调用未定义的函数http_post_fields()   /home/mspace/public_html/mysite.com/application/views/forms/unsubscribe.php   第7行

这是第7行:

$response = http_post_fields("http://mywebsite.com/DDM/Import.cfc?method=submitRecord&ClientID=1&DataSourceID=1234&Token=1234&TokenPassword=1234", $fields);

我认为它指的是http_post_fields,但不确定如何发布这个?

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:5)

您需要安装pecl_http扩展程序并启用它,才能使http_post_fields()生效 。或者另一种解决方案是使用自定义函数,如:

function http_post_flds($url, $data, $headers=null) {   
    $data = http_build_query($data);    
    $opts = array('http' => array('method' => 'POST', 'content' => $data));

    if($headers) {
        $opts['http']['header'] = $headers;
    }
    $st = stream_context_create($opts);
    $fp = fopen($url, 'rb', false, $st);

    if(!$fp) {
        return false;
    }
    return stream_get_contents($fp);
}

答案 1 :(得分:5)

您需要安装pecl_http包。或者,如果您无法在服务器中安装此软件包,也可以使用cURL

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"http://mywebsite.com/DDM/Import.cfc?method=submitRecord&ClientID=1&DataSourceID=1234&Token=1234&TokenPassword=1234");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec ($ch);

curl_close ($ch);