php - 使用 Curl 代理发布数据不返回任何内容

标签 php mysql curl proxy

当我使用没有代理的curl发布数据时工作正常,但是当我使用代理时我的输出为空

这是我在 test.php 中的表单

<form name="result" id="result" action="testdb.php" method="post" target="frame">
<input name="htno" type="text" id="htno"/>
<input type="submit" value="submit"/>
</form>
<iframe name="frame" id="frame" sandbox="allow-same-origin allow-forms allow-scripts" width="700px" height="500px" frameborder="no"/>

testdb.php 中的代码是

$id= $_POST["htno"];
$ch = curl_init();
$curlConfig = array(

CURLOPT_PROXYTYPE       => 'HTTP',
CURLOPT_PROXY           => '218.108.170.163:82',
CURLOPT_HTTPPROXYTUNNEL => '1',
CURLOPT_FOLLOWLOCATION  => '1',
CURLOPT_MAXREDIRS      => '2',
CURLOPT_RETURNTRANSFER => '1',
CURLOPT_CONNECTTIMEOUT => '10',
CURLOPT_USERAGENT      => 'Mozilla/5.0 (X11; U; Linux i686; en-US) 
        AppleWebKit/532.4 (KHTML, like Gecko) 
        Chrome/4.0.233.0 Safari/532.4',
CURLOPT_HTTPHEADER     => array('Referer: engineershub.in/sparcpanel1/b-tech1/btech11.php'),
CURLOPT_URL            => 'http://engineershub.in/sparcpanel1/b-tech1/btech11db.php',
CURLOPT_POST           => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS     => array(
    'id' => "$id"

),
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
echo $result;
curl_close($ch);

上面的代码返回空结果,如果我删除这部分

CURLOPT_PROXYTYPE       => 'HTTP',
CURLOPT_PROXY           => '218.108.170.163:82',
CURLOPT_HTTPPROXYTUNNEL => '1',
CURLOPT_FOLLOWLOCATION  => '1',
CURLOPT_MAXREDIRS      => '2',
CURLOPT_RETURNTRANSFER => '1',
CURLOPT_CONNECTTIMEOUT => '10',
CURLOPT_USERAGENT      => 'Mozilla/5.0 (X11; U; Linux i686; en-US) 
        AppleWebKit/532.4 (KHTML, like Gecko) 
        Chrome/4.0.233.0 Safari/532.4',

从上面的代码中我得到输出

我想要使用代理输出,请帮助我

最佳答案

我在这里假设您需要提供用户名/密码才能通过代理服务器(如果您使用的是 Windows,则可以是您的 Windows 登录凭据,当然具体取决于您的网络设置)。值得尝试传递这些内容,看看是否有帮助。

尝试在此处填写 $username 和 $password 以及您的详细信息,并将其放在执行 curl_exec 之前。

$username = 'your_username';
$password = 'your_password';

$headers = array(
    'Proxy-Authorization: BASIC ' . base64_encode("{$username}:{$password}")
); 

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

如果这不起作用,那么如果您可以让我们知道您返回的具体错误,那么使用以下命令会有所帮助(在运行curl_exec之后)。

if ($result === false)
{
    print "Error number: " . curl_errno() . "<br>\n";
    print "Error message: " . curl_error() . "<br>\n";
}

关于php - 使用 Curl 代理发布数据不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23492236/

相关文章:

php - 如何在 Laravel 中链接数据库关系(多个 has_many?)

php - 从 php 数据库嵌入 html5 视频

javascript - 在提交之前实时显示所选的单选按钮和复选框

javascript - 即使浏览器关闭也会触发事件

php - CURL php 不会接受 Accept-Language : fr needed to get the JSON

rest - Powershell v3 调用 RestMethod

php - 将txt文件导入Mysql

mysql - MySQL 中的 tinyint、smallint、mediumint、bigint 和 int 有什么区别?

linux - 在 curl 或 wget 之后,Bash 变量未在输出重定向中迭代

mysql - 数据未插入