使用cURL php Cookie登录

时间:2017-09-06 16:58:34

标签: php curl cookies login

我需要帮助才能像图片中显示的那样进行登录。 (www.hurl.it) hurl.it

这应该在PHP中使用cURL完成。 这是我到目前为止所做的,但它对我不起作用:

Add-ADGroupMember -Identity "wk_test" -Members (Get-ADComputer -SearchBase "CN=computers,DC=ad,dc=org" -filter *) 

1 个答案:

答案 0 :(得分:1)

你的代码正常运行,并且当我在这里测试时,确实登录了。我投票决定关闭这个问题,因为你只是说'#34;它不适合我",而不解释它怎么不适合你。

但是,在调试时,请不要使用print_r,请使用var_dump。例如,如果curl收到错误,则会返回 bool(false),当您将bool(false)提供给print_r时,它会打印绝对没有任何内容,发现会发生什么。

但是,如果你将bool(false)赋予var_dump,它实际上会打印bool(false)。

另外,在专门调试curl代码时,启用CURLOPT_VERBOSE,它会打印许多有用的调试信息。当curl_exec返回 false 时,您应该使用curl_error()来提取错误消息。

简而言之,将$result = curl_exec($c);替换为:

curl_setopt($c,CURLOPT_VERBOSE,true);
$result = curl_exec($c);
if(false===$result){
throw new \RuntimeException('curl_exec failed! errno: '.curl_errno($c).'. error: '.curl_error($c));
}
var_dump($result);

另外,如果设置任何卷曲选项时出现问题,curl_setopt会返回bool(false),你也完全忽略了这一点,不要这样做!使用类似的东西:

function ecurl_setopt ( /*resource*/$ch , int $option , /*mixed*/ $value ):bool{
    $ret=curl_setopt($ch,$option,$value);
    if($ret!==true){
        //option should be obvious by stack trace
        throw new RuntimeException ( 'curl_setopt() failed. curl_errno: ' .  curl_errno ($ch).'. curl_error: '.curl_error($ch) );
    }
    return true;
}

现在,如果应用您的设置时出现问题,则会抛出异常,而不是默默地忽略setopt错误。无论如何,应用CURLOPT_VERBOSE,不要忽略setopt返回值,并使用var_dump代替print_r,如果它仍然无效,请打印VERBOSE日志,以及CURLOPT_VERBOSEvar_dump以及curl_error打印的内容,然后我将撤回我的近距离投票。