0

curl について質問があります。あらゆる場所を検索し、多くのことを試しましたが、ログインできません。ページにログインしようとしています。隠しフィールドと関係があると思います。隠しフィールドはランダムに生成されません。

PHP の基本は知っていますが、専門家ではありません。この質問にコメントする場合は、コメントを書いていただけないでしょうか。本当に学びたいです。

これが私のコードです:

<?php
$url = 'see url above';
$username = 'username';
$password = 'password';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

echo '<pre>',print_r($info),'</pre>';

?>
4

2 に答える 2

0

実際には基本認証は必要ありません。
ご覧のとおり、ページには単純なフォームと隠し変数があります。POST で送信してみてください。

このようなもの:

$url =  'http://www.cibap.nl/index.php';
$username = 'username';
$password = 'password';

$post_data = array(
'ACT'       => '9',
'RET'       => '/login',
'site_id'   => '1',
'username'  => $username,
'password'  => $password,
'autologin' => '1'  
);

$ch = curl_init($url);

$postargs = http_build_query($post_data);
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postargs);

//Use cookie file if needed (probably needed)
//$cookiefile = '/path/to/cookie.txt'; 
//any filename, curl stores and reads this file next time
//curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile); 

//curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$output = curl_exec($ch);   
curl_close($ch);

echo '<pre>',print_r($output),'</pre>';
于 2013-04-05T19:11:14.753 に答える