【发布时间】:2020-03-17 22:03:53
【问题描述】:
下面是 2 段代码,其结果应该是相同的(至少我愿意)。此结果包括通过发送表单一键登录网站。
HTML 效果很好,可以让我完美连接。
PHP 让我很难受。 PHP/cURL 运行正确,我的意思是,如果我更改登录名/密码变量,服务器会发回“错误的用户名/密码”,但如果我发送正确的登录名/密码,服务器会进入深思熟虑,永远不会回答我.
你们对这种行为有什么建议吗? (我当然会错过一些东西......)。
谢谢
«AutoConnect.HTM»:
<html>
<script type="text/javascript">
window.onload = function () { document.getElementById('autolog').submit(); }
</script>
<body>
<form id="autolog" action="https://website.com/account/logon" method="post">
<input name="Login" value="User">
<input name="Password" value="Pass">
</form>
</body>
</html>
«AutoConnect.PHP»:
<?php
$url = 'https://website.com/account/logon';
$postinfo = http_build_query(array(
'Login' => 'User',
'Password' => 'Pass'
));
$client = 'Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5)';
$header = array(
'Connection: Keep-Alive',
'Accept: */*',
'Accept-Language: fr-FR',
'Content-type: application/x-www-form-urlencoded',
'Content-Length: '.(strlen($postinfo))
);
$options = array(
CURLOPT_HTTPHEADER => $header,
CURLOPT_HEADER => false,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_USERAGENT => $client,
CURLOPT_AUTOREFERER => true,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $postinfo,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_URL => $url
);
$ch = curl_init();
curl_setopt_array($ch,$options);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
【问题讨论】: