第一个错误:严格标准:只应在第15行的/home/user/public_html/ref/hhhhh_hhhhh/index.php中通过引用传递变量
点击提交按钮后:
警告:无法修改标头信息 - 已经发送的标头(/home/user/public_html/ref/hhhhh_hhhhh/index.php:3中的输出)/home/user/public_html/ref/hhhhh_hhhhh/index.php在第28行
<?php
require_once 'jsonRPCClient.php';
$api_key = 'apikey';
$api_url = 'url';
$client = new jsonRPCClient($api_url);
$campaigns = $client->get_campaigns(
$api_key,
array (
# find by name literally
'name' => array ( 'EQUALS' => 'test' )
)
);
$CAMPAIGN_ID = array_pop(array_keys($campaigns));
if(isset($_POST['submit']))
{
$result = $client->add_contact(
$api_key,
array (
'campaign' => $CAMPAIGN_ID,
'name' => 'Test',
'email' => 'test@test.test',
)
);
$cid = "infod";
$site_url = $cid.".pokemon.com";
header("Location: http://$site_url") ;
}
?>
答案 0 :(得分:0)
我从评论中看到你已经将严格的错误报告关闭 - 这不是一件好事 - 基本上你只是隐藏了一个真正的错误,你现在得到一个空白页面并且没有错误帮助你...
第一个错误:
Only variables should be passed by reference in
/home/user/public_html/ref/hhhhh_hhhhh/index.php on line 15
表示您正在调用函数并通过引用传递非变量。 &#39;通过引用传递&#39;表示该函数获取对原始变量的引用(而不是副本),并且可以对其进行修改,以便对您在调用代码中可以看到的变量进行更改。
所以,如果出现错误,那么第15行似乎就是这样:
$result = $client->add_contact(
$api_key,
array (
'campaign' => $CAMPAIGN_ID,
'name' => 'Test',
'email' => 'test@test.test',
)
);
我猜测add_contact的定义是通过引用获取第二个参数(不确定原因)并且你没有给它一个真实的&#39;变量可以使用,因为你基本上构建了一个将被抛弃的临时数组。
首先尝试构建数组:
$camp_arr = array (
'campaign' => $CAMPAIGN_ID,
'name' => 'Test',
'email' => 'test@test.test',
);
$result = $client->add_contact($api_key, $camp_arr);
您可能还想(稍后)查看$ camp_arr的内容,看看发生了什么。
您的第二个错误意味着标题已经发送,这是因为您在调用header
之前输出了一些文字,只要您发送文字就会发送标题并且您无法重新发送这些标题 - 这几乎肯定是由错误消息引起的,它计为输出文本并导致标题被发送。注意,另一个常见原因是在<?php ... ?>
块之外有文本或空格。