0

私は自分のウェブサイト (redmine) のページから wiki ドキュメントを抽出しようとしています。ログインページへのリダイレクトを正常に取得し、投稿のユーザー名とパスワードフィールドを送信しましたが、redmine からの ruby​​ リダイレクトのあるページに到達し、それ以上先に進むことができません。redmine のファイル「response.rb」内の ruby​​ コードは次のとおりです。

def redirect(url, status)
  self.status = status
  self.location = url.gsub(/[\r\n]/, '')
  self.body = "<html><body>You are being <a href=\"#{CGI.escapeHTML(url)}\">redirected</a>.</body></html>"
end

ruby について redmine のコードを変更するのに十分な知識がないので、php でこれを行う方法はありますか?

4

2 に答える 2

1

curl_setopt($curlHandle, CURLOPT_FOLLOWLOCATION, true);

適切に構成されたリダイレクト(Location:ヘッダーを送信するもの)に従うようにcURLに指示します。

于 2012-04-26T15:20:18.047 に答える
0

別の解決策を見つけました!

他の誰かが redmine またはその他のリダイレクトでその問題を抱えている場合:

  1. 最初に cURL を使用してログインします
  2. セッションを Cookie に保存する
  3. cURL を使用して、認証が必要な保護されたページを取得します。

    <?php
        $tempFilename = tempnam("/tmp", "COOKIE");
    
        // Login
        $curlHandle = curl_init("http://bob.com/login");
    
        curl_setopt($curlHandle, CURLOPT_COOKIEJAR, $tempFilename);
        curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
    
        $dataArray = array(
             "username" => "bob",
             "password" => "password"
        );
    
        curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $dataArray);
    
        $output = curl_exec($curlHandle);
    
        // Getting the wiki
        $curlHandle = curl_init("http://bob.com/wiki");
    
        curl_setopt($curlHandle, CURLOPT_COOKIEFILE, $tempFilename);
        curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
    
        $output = curl_exec($curlHandle);
        echo $output;
    ?>
    
于 2012-04-26T14:55:44.440 に答える