0

ユーザー名とパスワードが必要なウェブサイト外の価値フォームを取得しようとしています。通常、最初にログインページ(https://xxx.xxx.xxx/HomeAccess)に移動してから、https: //xxx.xxx.xxx/xxx.aspxに移動する必要があります。しかし、ログインせずにxxx.aspxページに移動すると、「内部サーバーエラーが発生したため、ページを表示できません。」というエラーが発生します。

PHPで私はこのコードを使おうとしています

<?php

$ch = curl_init();
$url = 'https://xxx.xxx.xxx/xxx.aspx';
$username ='uuuuu';
$password ='ppppp';
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);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

print $output;

?>

空白のページが表示されました。

何か案が?ありがとう

4

2 に答える 2

0

そのサイトで認証がどのように設定されているかは正確にはわかりませんが、通常、ログインすると、Cookieとして何らかのアクセストークンが提供され、サイト内の他のページへのアクセスに使用されます。したがって、curlを使用して、ユーザー名とパスワードを使用してログインページにアクセスし、Cookieを取得してから、目的のページに再度curlします。

繰り返しますが、それはすべて、アクセスしようとしているサイトによって異なります。ログインが行われている場所と、それらがどのように認証/承認するかを見つけるために、いくつかの調査を行う必要があります。

于 2013-02-28T17:41:03.283 に答える
0

カールはこれを行うことであなたにかなり良いヒントを与えることができます:

if(curl_exec($ch) === false)
{
    echo 'Curl error: ('.curl_error($ch).'): '.curl_error($ch);
}

私の推測では、SSL証明書の検証の問題があります。しかし、それは実際には20の異なるものである可能性があります。$ infoの値を最初の質問に含めることができれば、それも役立ちます。

于 2013-02-28T17:49:56.467 に答える