这段代码出了什么问题?
Idk为什么,但格式化在这里搞砸了。这是行:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
我是新来的,所有的帮助都是有用的。感谢。
<?php
if(isset($_POST['payment'])){
require('config.php');
$ch= curl_init('https://coinbase.com/api/v1/account/generate_receive_address');
$amount=$_POST['amount'];
$json=json_encode(array("api_key"=>COINBASE_APIKEY,"address"=>array("callback_url"=>$_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']).'callback.php')));
curl_setopt($ch, CURLOPT_HTTPHEADERS, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_POST, 1);
$jsonreturn=json_decode(curl_exec($ch),true);
if(is_integer($amount) && $amount>0 && $jsonreturn['callback_url']==$_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']).'callback.php'){
$mysql=new mysqli(MYSQL_HOSTNAME,MYSQL_USERNAME,MYSQL_PASSWORD,MYSQL_DATABASE);
$mysql->query("INSERT INTO invoices(Amount, Address) VALUES ('$amount','".$jsonreturn['address']."')");
$mysql->close();
header('refresh: 1;url=payment.php?address='.$jsonreturn['address'].'&amount='.$amount);
exit();
}else{
header("refresh: url=payment.php?error=1");
exit();
}
}
?>
答案 0 :(得分:3)
问题实际上是CURLOPT_HTTPHEADERS
行。 (行号从文件的开头开始,而不只是计算PHP代码行)
实际PHP常量为CURLOPT_HTTPHEADER
(单数),而不是CURLOPT_HTTPHEADERS
。
由于PHP处理未定义常量的方式,它会生成警告消息(可能由于您的配置设置而隐藏),并将未定义的常量视为字符串:"CURLOPT_HTTPHEADERS"
- 因此关于期望整数的错误消息(长),并得到一个字符串。
如果您仍然没有从代码中获得预期的结果,我会检查以下内容:
您的连接参数 - 主机名,用户名,密码等来自哪里?你确定他们是对的。
在将变量值插入查询之前,您尚未正确转义变量值。如果你的价值得到报价,就会引发问题。尝试echo
输出你的sql而不是查询它,然后尝试针对你的数据库手动运行它。我也高度建议改为使用prepared statements。