Zencart で実行されているサイトのパスワードで保護された領域にログインし、html を文字列形式で取得できるようにするスクリプトを作成しようとしています。これまでのところ、HTML ページは .html ファイルとしてダウンロードされますが、ページのパブリック バージョンのみがダウンロードされます (つまり、正常にログインしていません)。これは HTTPS であり、これが機能しない理由の一部である可能性があると思います。スクリプトの何が問題なのですか?必要な CURL 設定は何ですか (残念ながら、PHP の CURL に関するドキュメントはほとんどありません :( )
<?php
$username = "xxxx@gmail.com";
$password = "xxxxx";
$securityToken = "b6afe5babdd1b6be234d1976586fb1f1";
$loginUrl = "https://www.xxxxxxx.com.au/index.php?main_page=login&action=process";
//init curl
$ch = curl_init();
//Set the URL to work with
curl_setopt($ch, CURLOPT_URL, $loginUrl);
// ENABLE HTTP POST
curl_setopt($ch, CURLOPT_POST, 1);
//Set the post parameters
curl_setopt($ch, CURLOPT_POSTFIELDS, 'email_address='.$username.'&password='.$password.'&securityToken='.$securityToken);
//Handle cookies for the login
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie122.txt');
//Setting CURLOPT_RETURNTRANSFER variable to 1 will force cURL
//not to print out the results of its query.
//Instead, it will return the results as a string return value
//from curl_exec() instead of the usual true/false.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//execute the request (the login)
$store = curl_exec($ch);
//the login is now done and you can continue to get the
//protected content.
//set the URL to the protected file
curl_setopt($ch, CURLOPT_URL, 'http://www.xxxxxxx.com.au/index.php?main_page=product_info&products_id=1488');
//execute the request
$content = curl_exec($ch);
//save the data to disk
file_put_contents('test122.html', $content);
if(curl_error($ch)) {
$error = curl_error($ch);
echo $error;
}
?>