我刚刚习惯了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,但不确定如何发布这个?
任何帮助将不胜感激!
答案 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);