You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复使用PHP cURL提交网站评论的错误代码?

PHP cURL评论提交代码修复方案

原代码存在的问题

  • 代码里混入了HTML转义字符(>、"),PHP原生环境无法识别这类转义内容
  • 直接传数组给CURLOPT_POSTFIELDS时,cURL会自动使用multipart/form-data编码,但绝大多数网站的评论提交接口要求的是application/x-www-form-urlencoded格式,容易被接口拒绝
  • 没有错误处理逻辑,请求失败时没法知道具体报错原因
  • 缺少常规浏览器请求头,很容易被站点的反爬策略拦截

修复后的完整代码

<?php 
// 初始化cURL
$mycurl = curl_init();

// 配置POST参数,可自行修改对应值
$postData = [
    "Name" => "Example",
    "Email" => "Example@gmail.com",
    "Comment" => "这是测试评论内容"
];

curl_setopt_array($mycurl, [
    // 替换为实际的评论提交接口地址
    CURLOPT_URL => "https://example.com",
    CURLOPT_RETURNTRANSFER => true,
    // 超时时间调整为10秒,避免网络慢时请求中断
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_POST => true,
    // 处理POST参数为表单编码格式
    CURLOPT_POSTFIELDS => http_build_query($postData),
    // 模拟Chrome浏览器UA,避免被拦截
    CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
    // 如果站点校验来源,可添加对应Referer
    // CURLOPT_REFERER => "https://example.com/comment-page",
    // 本地测试时如果目标站是HTTPS且证书有问题可以开启下面两行,生产环境建议删除
    // CURLOPT_SSL_VERIFYPEER => false,
    // CURLOPT_SSL_VERIFYHOST => false
]);

$result = curl_exec($mycurl);

// 错误判断
if(curl_errno($mycurl)) {
    echo "请求错误:" . curl_error($mycurl);
} else {
    echo "请求成功,返回内容:" . $result;
}

curl_close($mycurl);
?>

补充说明

如果还是提交失败,需要先确认目标站点的评论接口要求:

  • 部分站点的字段名可能不是Name/Email/Comment,可以打开浏览器F12抓一下正常提交评论的请求参数,对应修改$postData里的键名即可
  • 如果站点要求登录后才能评论,还需要在配置中加CURLOPT_COOKIE参数传入登录后的cookie信息

内容的提问来源于stack exchange,提问作者Proxcis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:15:09