0

PHPを使用してWebサイトに自動ログインしようとしていますが、このコードでエラーが発生することはなく、結果も得られません。これが私が試したコードです。ログイン後にページのソースコードを期待しているので、空白のページしか表示されません。

<?php
$fields_string=array();
$url = 'https://subscriber.hoovers.com/H/login/login.html';

$fields = array(
        "j_username"=>"XXXXXX",
"j_password"=>"XXXX"
    );

//url-ify the data for the POST
foreach($fields as $key=>$value) 
{ 
$fields_string .= $key.'='.$value.'&'; 
 }
 rtrim($fields_string,'&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);

//execute post
$result = curl_exec($ch);
echo $result;

//close connection
curl_close($ch);
?>
4

1 に答える 1

0

これらのcurlオプションを追加することで、スクリプトがページのソースコードを返すようにすることができました:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

デフォルトでは、curl は Web サーバーの証明書を信頼しません。上記の最後のオプションは、Web サーバーを検証しないように curl に指示します。最後のオプションをこれに切り替えたいと思うかもしれません:

curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt ($ch, CURLOPT_CAINFO, "path/to/your/cacert.pem");

このルートに進む場合は、PHP で cURL を使用して HTTPS (SSL/TLS) で保護されたサイトにアクセスするのを参照してください。これは優れたチュートリアルであり、それについて知る必要があるすべてのことを説明します。

于 2013-02-28T04:04:26.403 に答える