0
ウェブサイトにログインするPHPスクリプトを作成しようとしています。ログイン後にURL情報を返すためにCURLOPT_RETURNTRANSFERを使用し、特定の一致についてこのデータを解析します。ログアウトしてサイトに再度ログインしなくても、returntransferデータを更新する方法があるかどうかを知りたいですか?現時点では、私は完全にログアウトしてから、ログインしてreturntransferで新しいhttp文字列を取得する必要があります。私はPHPとcURLを初めて使っているので、この質問があいまいであれば私を許してください。以下はサンプルコードですが、フラグに基づいて、flagがtrueに設定されるまでループし続けます。POST /ログイン後のcURLとURLの最新表示
<?php
if(isset($_POST['userName']))
{
$cookie_file_path = "cookie.txt";
$data = array('Username' => $_POST['userName'],'Password' =>$_POST['userPassword']);
$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7";
$reffer = "https://someurl/Login.aspx?action=login";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://someurl/Login.aspx?action=login");
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_fie_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_REFERER,$reffer);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
$html= curl_exec($ch);
echo $html;
curl_close($ch);
$flagOfFound=0;
do {
//process the message
//......
//set $flagOfFound = true of there is match
//else
//refresh message/http returntransfer while still logged in
}
while ($flagOfFound == 0);
}
?>
応答Federicoに感謝します。 Cookieを保存しないと、.aspページを更新すると、自動的にログアウトされないため、再度ログインする必要はありませんか?このスクリプトが実際にやろうとしていることは、httpデータを解析して特定のURLを検索し、ログインしているユーザーを選択することです。 –