PHP/Curl/Wordpress 在不刷新页面的情况下发布数据,curl 不起作用
Posted
技术标签:
【中文标题】PHP/Curl/Wordpress 在不刷新页面的情况下发布数据,curl 不起作用【英文标题】:PHP/Curl/Wordpress Posting data without refreshing page, curl not working 【发布时间】:2012-10-09 05:20:15 【问题描述】:我正在为捐赠页面编写代码,并希望在不刷新页面的情况下提交 CC 信息,并使用叠加层显示结果。我使用 jQuery 让叠加层正常工作,并使用 php if 语句,我可以回发到我所在的页面并正确获取 CC 事务的 curl 块的变量。但是我从来没有得到任何结果。如果我允许页面 POST/refresh 它工作正常,但似乎 Wordpress 不允许我从不直接在环境中运行的页面运行 curl。
有什么建议吗?
jQuery.post('sameurl', jQuery("#donateform").serialize(), function(data)
jQuery('#overlay_msg').html(data);
和
$ch = curl_init ();
curl_setopt ($ch, CURLOPT_URL,$hoststring);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $xml); # the string we built above
curl_setopt ($ch, CURLOPT_SSLCERT, $cert);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_VERBOSE, 1);
$result = curl_exec ($ch);
我对 $xml 字符串进行了硬编码,并试图让它工作。我是 php/curl/ajax 的新手,但总体上对编码有所了解。
谢谢。
【问题讨论】:
我也将工作代码放在 wordpress 之外,它停止工作,所以它一定是某种依赖,但老实说我不知道去哪里找。 【参考方案1】:据我所知,您的代码没有调用任何 wordpress 函数,因此那里没有依赖关系。听起来 cURL 调用没有成功完成,您需要对此进行调试。确保 php 错误报告已打开并在 php.ini 中设置为 E_All,还将 curl 选项 FAILONERROR 设置为 true,并确保使用 curl 错误函数捕获任何错误。
否则,您可能需要分析 HTTP 标头以查看从服务器接收到的内容。您可能只是获得重定向尝试将 CURLOPT_FOLLOWLOCATION 设置为 true。
【讨论】:
感谢您的尝试,我必须刷新页面并返回到自身,只在模态/叠加层中进行数据验证/谢谢。【参考方案2】:嗯,原来是目录问题。 Wordpress 将您设置为网站根目录,而常规 html 将您的目录设置为相对于文件位置。所以我无法获得我的证书。
【讨论】:
以上是关于PHP/Curl/Wordpress 在不刷新页面的情况下发布数据,curl 不起作用的主要内容,如果未能解决你的问题,请参考以下文章