当我使用没有代理的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/