我需要使用php登录到另一个站点然后从该站点的另一个页面获取内容,因为登录后它进入主页我需要客户页面。 我尝试使用file_get_contents和curl,但后者已知在这里使用php curl的代码更好:
element.style.a:visited.backgroundColor='#FFFFFF';
op 和 rUrl 是隐藏输入标记的名称。 如果我将 $ url + $ postdata 放在浏览器的地址栏中,它会转到所需的页面,但是通过代码它没有按预期工作,它仍然保留到登录页面而不输入英寸
答案 0 :(得分:1)
您的$postdata
似乎无效 - 它不应该具有该?&
。此外,op
出现两次,第二次出现在op=customers
之后?
:
$postdata = "?&username=$username&password=$password&op=login&rUrl=?
op=customers";
http_build_query
以确保您生成精确的URL编码查询字符串,如下所示:
$postdata = [
'username' => $username,
'password' => $password,
'op' => 'login',
'rUrl' => 'customers',
];
echo '$postdata: ' . http_build_query($postdata);
exit;
答案 1 :(得分:0)
环境:
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
它有效,因为:
CURLOPT_FOLLOWLOCATION TRUE跟随服务器作为HTTP标头的一部分发送的任何“Location:”标头(注意这是递归的,PHP将跟随它发送的“Location:”标头,除非设置了CURLOPT_MAXREDIRS)。
登录后,它将被重定向到网址中指定的页面。